<?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>229941</bug_id>
          
          <creation_ts>2021-09-06 02:04:17 -0700</creation_ts>
          <short_desc>webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html fails on Intel+AMD Metal</short_desc>
          <delta_ts>2021-09-16 18:59:14 -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>WebGL</component>
          <version>WebKit Local 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>
          
          <blocked>222812</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kyle Piddington">kpiddington</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1790644</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-06 02:04:17 -0700</bug_when>
    <thetext>webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html fails on Intel+AMD Metal

Unknown which gpu is selected
run-webkit-tests --release --order=random  --webgl --force webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792212</commentid>
    <comment_count>1</comment_count>
      <attachid>437827</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-09 19:31:57 -0700</bug_when>
    <thetext>Created attachment 437827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792213</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-09-09 19:33:16 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792274</commentid>
    <comment_count>3</comment_count>
      <attachid>437827</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-10 01:54:04 -0700</bug_when>
    <thetext>Comment on attachment 437827
Patch

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

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h:47
&gt; +angle::Result InitializeTextureContentsGPU(const gl::Context *context,

This prototype is unused?

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:116
&gt; +    size_t textureHeight = texture.get()-&gt;width(index.getNativeLevel());

height, not width

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:121
&gt; +    switch(textureObjFormat.actualFormatId)

I think this code is more robustly implemented in
formatutils.cpp
computeCompressedImageSize

See vkhelpers.cpp for call sites of computeCompressedImageSize.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:420
&gt; +    if(mtl::Buffer::MakeBuffer(contextMtl, bufferSizeInBytes, nullptr, &amp;bufferOut) != angle::Result::Continue)

Style nit:

Here the pattern:
   != angle::Resutl::Continue

means you maybe are doing something against the spirit of the coding convention of the project.

Typically:
The call graphs start with functions that return `angle::Result`.
So when call graph progresses deeper, all calls to such functions can use the macros, ANGLE_TRY

When you enter function without such return value, then you mostly don&apos;t re-enter angle::Result functions anymore.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:435
&gt; +    mtl::BufferRef zeroBuffer = GetCompressedBufferForTextureWithFormat(context, texture, textureObjFormat, index, bytesPerRow, bytesPerImage);

So here your code is

  create metal buffer()
  if (cpu texture)
      use the contents of the metal buffer as texture contents ()
  else
     send the buffer to metal()

In other words: it might not make sense to make a metal resource but use it to just obtain a zero-filled &quot;malloc&quot; buffer.

Instead, you could do

  if (cpu texture) {
     context-&gt;getZeroFilledBuffer()
     use the zero filled cpu  buffer for contents
  } else {
   create metal buffer()
   send the buffer to metal()
  }

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:442
&gt; +    if(texture-&gt;isCPUAccessible())

Nit:

In this commit, there&apos;s a lot of 
  if(condition)

and:
 //My Comment

I believe the correct formatting is
  if (condition)

and
  // Comment.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:483
&gt; +    }

Not saying this commit should necessarily solve all below, but maybe it would be possible to move to this direction:

In the ideal world, my layman guess for the best algorithm for the whole function would be:
1) if texture should be cleared with a render pass, clear with render pass
2) else
2.1) compute the zero buffer size for the texture, regardless if it&apos;s compressed or uncompressed
2.2) if texture is cpu accessible, clear with replaceRegion
2.3) else clear with buffer blit
3) ASSERT that no texture is left uncleared

For the condition &quot;texture should be cleared with a render pass&quot;:
I just don&apos;t understand the current if statements.
Currently I understand:
 - compressed textures: no
 - due to some simulator limitations: yes

If I understand correctly:
 - For all other formats, zero buffer means zero texture
 - All there is to do is to know the size of the texture data and you can replace the texture contents with either replaceRegion or blit
 - Textures that can get relatively big, it may be better to do a render pass clear or blit (?). Is this why multisample goes to render pass path? If this is the case, the heuristic should be about the size, not about which type.
 - We seem to assume replaceRegion is better than blit or render pass
 - Depth/Stencil might be special case if 24_8 is emulated with two textures (is it a problem in this level?) 

I tried to understand the tables in https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf

If I undestand correctly:
- normal color, multisample, multisample array, depth, stencil can cleared with a render pass
- compressed color should be cleared with an upload


If I see correctly, the TextureD3D::initializeContents works pretty much this way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792596</commentid>
    <comment_count>4</comment_count>
      <attachid>437922</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-10 16:30:16 -0700</bug_when>
    <thetext>Created attachment 437922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792601</commentid>
    <comment_count>5</comment_count>
      <attachid>437922</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-09-10 16:41:10 -0700</bug_when>
    <thetext>Comment on attachment 437922
Patch

This is pleasingly small. While I&apos;m double-checking the math, would you consider uploading another revision explicitly enabling the test:
webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html

in LayoutTests/TestExpectations ?

Or if you&apos;ve tested locally and would prefer to enable the test in a follow-on (to prevent this from being reverted if there&apos;s a failure on some unrelated platform), that&apos;s fine. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792616</commentid>
    <comment_count>6</comment_count>
      <attachid>437922</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-09-10 17:05:13 -0700</bug_when>
    <thetext>Comment on attachment 437922
Patch

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

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:106
&gt; +bool GetCompressedBufferSizeForTextureWithFormat(const TextureRef &amp;texture,

Looking more closely, this seems to duplicate InternalFormat::computeCompressedImageSize in src/libANGLE/formatutils.cpp.

Is it possible to just use that by calling gl::GetSizedInternalFormatInfo, passing in the sized internal format of the compressed texture?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792625</commentid>
    <comment_count>7</comment_count>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-10 17:45:51 -0700</bug_when>
    <thetext>(In reply to Kenneth Russell from comment #6)
&gt; Comment on attachment 437922 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437922&amp;action=review
&gt; 
&gt; &gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:106
&gt; &gt; +bool GetCompressedBufferSizeForTextureWithFormat(const TextureRef &amp;texture,
&gt; 
&gt; Looking more closely, this seems to duplicate
&gt; InternalFormat::computeCompressedImageSize in src/libANGLE/formatutils.cpp.
&gt; 
&gt; Is it possible to just use that by calling gl::GetSizedInternalFormatInfo,
&gt; passing in the sized internal format of the compressed texture?

We also need to calculate the row length. It&apos;s almost the same as computeCompressedIamgeSize. This just wraps calling two functions into one. If you&apos;d like me to decouple it,  I can do that too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792626</commentid>
    <comment_count>8</comment_count>
      <attachid>437922</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-09-10 17:45:58 -0700</bug_when>
    <thetext>Comment on attachment 437922
Patch

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

&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:106
&gt;&gt; +bool GetCompressedBufferSizeForTextureWithFormat(const TextureRef &amp;texture,
&gt; 
&gt; Looking more closely, this seems to duplicate InternalFormat::computeCompressedImageSize in src/libANGLE/formatutils.cpp.
&gt; 
&gt; Is it possible to just use that by calling gl::GetSizedInternalFormatInfo, passing in the sized internal format of the compressed texture?

Sorry, I was looking just at the outBytesPerRow computation and failed to see you were actually calling computeCompressedImageSize.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:121
&gt; +         ((size.width + textureObjFormat.actualInternalFormat().compressedBlockWidth - 1u) / textureObjFormat.actualInternalFormat().compressedBlockWidth) * textureObjFormat.actualAngleFormat().pixelBytes;

More concretely, can this use InternalFormat::computeRowPitch instead? Does it produce the same answer?

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:132
&gt; +    assert(textureObjFormat.actualAngleFormat().isBlock);

Please use ANGLE&apos;s ASSERT.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:142
&gt; +    if(texture-&gt;isCPUAccessible())

Both of these initialization paths only handle 2D compressed textures. The conformance tests aren&apos;t covering the cube map and 3D paths well (for those compressed texture formats which support 3D - mainly, the BC formats) but it would be safest to add code for those - I think applications are at least using cube map compressed textures in the wild. Would you be willing to do this? We can collaborate on expanding the conformance suite.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:185
&gt; +        // If dst format is depth or stencil, ignore. This path is handled seperatley.

typo: separately</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792627</commentid>
    <comment_count>9</comment_count>
      <attachid>437932</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-10 17:48:54 -0700</bug_when>
    <thetext>Created attachment 437932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792630</commentid>
    <comment_count>10</comment_count>
      <attachid>437932</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-09-10 17:53:18 -0700</bug_when>
    <thetext>Comment on attachment 437932
Patch

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

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:148
&gt; +    if(texture-&gt;isCPUAccessible())

In earlier version of this patch, had a concern that this isn&apos;t handling the possibility of cube map or 3D compressed textures. The conformance suite is lacking in these areas, but cube map compressed textures are probably being used in the wild. Can these paths be enhanced to handle at least that case, and explicitly bail out of the 3D case if we don&apos;t want to try supporting it now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792632</commentid>
    <comment_count>11</comment_count>
      <attachid>437932</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-09-10 18:05:13 -0700</bug_when>
    <thetext>Comment on attachment 437932
Patch

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

&gt; Source/ThirdParty/ANGLE/ChangeLog:6
&gt; +        Zero-initialize compressed textures explicitly, as they aren&apos;t implicitly initalized in Metal.

To capture a comment on an earlier version of this patch: can this conformance test be explicitly enabled in LayoutTests/TestExpectations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792634</commentid>
    <comment_count>12</comment_count>
      <attachid>437933</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-10 18:26:13 -0700</bug_when>
    <thetext>Created attachment 437933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792637</commentid>
    <comment_count>13</comment_count>
      <attachid>437935</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-10 18:27:27 -0700</bug_when>
    <thetext>Created attachment 437935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792638</commentid>
    <comment_count>14</comment_count>
      <attachid>437935</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-09-10 18:54:24 -0700</bug_when>
    <thetext>Comment on attachment 437935
Patch

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

Thanks for producing all of the revisions. Looks good to me. r+

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:136
&gt; +    assert(textureObjFormat.actualAngleFormat().isBlock);

Would prefer ANGLE&apos;s ASSERT.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:162
&gt; +            texture-&gt;replaceRegion(contextMtl, mtlTextureRegion, index.getNativeLevel(), layer, buffer.data(), bytesPerRow, 0);

Re-reviewing this, it looks correct for cube map textures because the passed-in layer is the cube map face index from [0..5].

&gt; LayoutTests/ChangeLog:9
&gt; +        * TestExpectations:

Comment &quot;Explicitly turn on conformance test until all of webgl/2.0.y is enabled&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792888</commentid>
    <comment_count>15</comment_count>
      <attachid>437935</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-13 01:57:49 -0700</bug_when>
    <thetext>Comment on attachment 437935
Patch

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

Great. I&apos;ll post you a clang-format command you could use

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:109
&gt; +                                            size_t &amp; outBytesPerRow,

space
(I think this would be size_t *bytesPerRowOut) in most ANGLE code.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:111
&gt; +{

space

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:115
&gt; +    if(!textureObjFormat.intendedInternalFormat().computeCompressedImageSize(size, &amp;bufferSizeInBytes))

spaces &quot;if (&quot;

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:129
&gt; +angle::Result InitializeCompressedTextureContents(const gl::Context *context,

This is anonymous namespace or static function? (static based on this file?)

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:133
&gt; +                                        const uint layer,

const uint -&gt; &quot;unsigned&quot;
(typically indented to the opening parenthesis ?)

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:147
&gt; +    };

extra ;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792890</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-13 02:05:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/83045378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793804</commentid>
    <comment_count>17</comment_count>
      <attachid>438277</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-15 12:35:30 -0700</bug_when>
    <thetext>Created attachment 438277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793806</commentid>
    <comment_count>18</comment_count>
      <attachid>438278</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-15 12:36:58 -0700</bug_when>
    <thetext>Created attachment 438278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794292</commentid>
    <comment_count>19</comment_count>
      <attachid>438423</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-09-16 18:08:49 -0700</bug_when>
    <thetext>Created attachment 438423
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794303</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-16 18:59:13 -0700</bug_when>
    <thetext>Committed r282627 (241784@main): &lt;https://commits.webkit.org/241784@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438423.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437827</attachid>
            <date>2021-09-09 19:31:57 -0700</date>
            <delta_ts>2021-09-10 16:30:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229941-20210909193156.patch</filename>
            <type>text/plain</type>
            <size>15364</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uMTQ2MGJhOWYzMTYw
OWRkOGY3NTY3ZDYxYWIwY2Y5MDE4MWE5YzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW06CisgICAgICAgIChyeDo6bXRsOjpHZXRD
b21wcmVzc2VkQnVmZmVyRm9yVGV4dHVyZVdpdGhGb3JtYXQpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyk6CisKIDIwMjEtMDgtMzEgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9nbHNsL21pc2MvZnJhZ2NvbG9yLWZyYWdkYXRhLWludmFyaWFudC5odG1sIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvbXRsX3V0aWxzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvbXRsX3V0aWxzLmgKaW5kZXggMmVkNWY1YzJiOTIwNGM2OTQ2YmRmNjczNjQx
ZjliZjUxZTM4OWUyYi4uOGYyZTIxZTQ0YTIxMWU1ZGNkNzFkOWMzYzQ3ZDZhMzJkNDIxYWI5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L21ldGFsL210bF91dGlscy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMuaApAQCAtNDQsNiArNDQsMTEgQEAgYW5nbGU6
OlJlc3VsdCBJbml0aWFsaXplVGV4dHVyZUNvbnRlbnRzR1BVKGNvbnN0IGdsOjpDb250ZXh0ICpj
b250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEltYWdlTmF0aXZlSW5kZXggJmluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1UTENvbG9yV3JpdGVNYXNrIGNoYW5uZWxzVG9Jbml0KTsKIAorYW5nbGU6
OlJlc3VsdCBJbml0aWFsaXplVGV4dHVyZUNvbnRlbnRzR1BVKGNvbnN0IGdsOjpDb250ZXh0ICpj
b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFRleHR1cmVSZWYgJnRleHR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgRm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4
KTsKKwogLy8gU2FtZSBhcyBhYm92ZSBidXQgZm9yIGEgZGVwdGgvc3RlbmNpbCB0ZXh0dXJlLgog
YW5nbGU6OlJlc3VsdCBJbml0aWFsaXplRGVwdGhTdGVuY2lsVGV4dHVyZUNvbnRlbnRzR1BVKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHR1cmVSZWYgJnRleHR1cmUsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvbXRsX3V0aWxzLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL210bF91dGlscy5tbQppbmRleCBiZDEyYzUzZmQ0NmVkZTA3NWE1M2Y2OWU3
NGNkOWEyODc5NGZlZDQ4Li5mZWI2ZmUwZTMxYjMzZTJhODU1ZmU2MDc3MjgyMjdkNGE1M2JlMjJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvbXRsX3V0aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KQEAgLTEwMyw2ICsxMDMsMzU2IEBA
IEdMaW50IEdldFNsaWNlT3JEZXB0aChjb25zdCBJbWFnZU5hdGl2ZUluZGV4ICZpbmRleCkKIAog
fQogCittdGw6OkJ1ZmZlclJlZiBHZXRDb21wcmVzc2VkQnVmZmVyRm9yVGV4dHVyZVdpdGhGb3Jt
YXQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHR1cmVSZWYgJnRleHR1cmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZvcm1hdCAmdGV4dHVyZU9i
akZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgSW1hZ2VOYXRpdmVJbmRleCAmaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCAmIG91dEJ5dGVzUGVyUm93LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgJiBvdXRCeXRlc1BlckltYWdlKQor
eworICAgIG10bDo6QnVmZmVyUmVmIGJ1ZmZlck91dCA9IG51bGxwdHI7CisgICAgc2l6ZV90IGJ1
ZmZlclNpemVJbkJ5dGVzOworICAgIHNpemVfdCB0ZXh0dXJlV2lkdGggPSB0ZXh0dXJlLmdldCgp
LT53aWR0aChpbmRleC5nZXROYXRpdmVMZXZlbCgpKTsKKyAgICBzaXplX3QgdGV4dHVyZUhlaWdo
dCA9IHRleHR1cmUuZ2V0KCktPndpZHRoKGluZGV4LmdldE5hdGl2ZUxldmVsKCkpOworICAgIHNp
emVfdCBieXRlc1BlckJsb2NrID0gMDsKKyAgICBzaXplX3QgYmxvY2tXaWR0aCA9IDA7CisgICAg
c2l6ZV90IGJsb2NrSGVpZ2h0ID0gMDsKKyAgICBjb25zdCBzaXplX3QgQVNUQ0J5dGVzUGVyQmxv
Y2sgPSAxNjsKKyAgICBzd2l0Y2godGV4dHVyZU9iakZvcm1hdC5hY3R1YWxGb3JtYXRJZCkKKyAg
ICB7CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpFQUNfUjExX1VOT1JNX0JMT0NLOgor
ICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6RUFDX1IxMV9TTk9STV9CTE9DSzoKKyAgICAg
ICAgeworICAgICAgICAgICAgYnl0ZXNQZXJCbG9jayA9IDg7CisgICAgICAgICAgICBibG9ja1dp
ZHRoICA9IDQ7CisgICAgICAgICAgICBibG9ja0hlaWdodCA9IDQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElE
OjpCQzVfUkdfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpCQzVf
UkdfU05PUk1fQkxPQ0s6CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSAx
NjsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0gNDsKKyAgICAgICAgICAgIGJsb2NrSGVpZ2h0
ID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgYW5nbGU6
OkZvcm1hdElEOjpCQzRfUkVEX1VOT1JNX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3Jt
YXRJRDo6QkM0X1JFRF9TTk9STV9CTE9DSzoKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNQ
ZXJCbG9jayA9IDQ7CisgICAgICAgICAgICBibG9ja1dpZHRoICA9IDQ7CisgICAgICAgICAgICBi
bG9ja0hlaWdodCA9IDQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBj
YXNlIGFuZ2xlOjpGb3JtYXRJRDo6RUFDX1IxMUcxMV9VTk9STV9CTE9DSzoKKyAgICAgICAgY2Fz
ZSBhbmdsZTo6Rm9ybWF0SUQ6OkVBQ19SMTFHMTFfU05PUk1fQkxPQ0s6CisgICAgICAgIHsKKyAg
ICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSAxNjsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0g
NDsKKyAgICAgICAgICAgIGJsb2NrSGVpZ2h0ID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpFVEMyX1I4RzhCOF9VTk9STV9C
TE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkVUQzJfUjhHOEI4X1NSR0JfQkxP
Q0s6CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSA4OworICAgICAgICAg
ICAgYmxvY2tXaWR0aCAgPSA0OworICAgICAgICAgICAgYmxvY2tIZWlnaHQgPSA0OworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkVU
QzJfUjhHOEI4QTFfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpF
VEMyX1I4RzhCOEExX1NSR0JfQkxPQ0s6CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVy
QmxvY2sgPSA4OworICAgICAgICAgICAgYmxvY2tXaWR0aCAgPSA0OworICAgICAgICAgICAgYmxv
Y2tIZWlnaHQgPSA0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2Fz
ZSBhbmdsZTo6Rm9ybWF0SUQ6OkVUQzJfUjhHOEI4QThfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNh
c2UgYW5nbGU6OkZvcm1hdElEOjpFVEMyX1I4RzhCOEE4X1NSR0JfQkxPQ0s6CisgICAgICAgIHsK
KyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSA4OworICAgICAgICAgICAgYmxvY2tXaWR0aCAg
PSA0OworICAgICAgICAgICAgYmxvY2tIZWlnaHQgPSA0OworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfMTB4MTBfVU5PUk1f
QkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzEweDEwX1NSR0JfQkxP
Q0s6CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSBBU1RDQnl0ZXNQZXJC
bG9jazsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0gMTA7CisgICAgICAgICAgICBibG9ja0hl
aWdodCA9IDEwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBh
bmdsZTo6Rm9ybWF0SUQ6OkFTVENfMTB4NV9VTk9STV9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmds
ZTo6Rm9ybWF0SUQ6OkFTVENfMTB4NV9TUkdCX0JMT0NLOgorICAgICAgICB7CisgICAgICAgICAg
ICBieXRlc1BlckJsb2NrID0gQVNUQ0J5dGVzUGVyQmxvY2s7CisgICAgICAgICAgICBibG9ja1dp
ZHRoICA9IDEwOworICAgICAgICAgICAgYmxvY2tIZWlnaHQgPSA1OworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpB
U1RDXzEweDZfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RD
XzEweDZfU1JHQl9CTE9DSzoKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNQZXJCbG9jayA9
IEFTVENCeXRlc1BlckJsb2NrOworICAgICAgICAgICAgYmxvY2tXaWR0aCAgPSAxMDsKKyAgICAg
ICAgICAgIGJsb2NrSGVpZ2h0ID0gNjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ18xMHg4X1VOT1JNX0JM
T0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ18xMHg4X1NSR0JfQkxPQ0s6
CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSBBU1RDQnl0ZXNQZXJCbG9j
azsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0gMTA7CisgICAgICAgICAgICBibG9ja0hlaWdo
dCA9IDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
Y2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfMTJ4MTJfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNh
c2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzEyeDEyX1NSR0JfQkxPQ0s6CisgICAgICAgIHsKKyAg
ICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSBBU1RDQnl0ZXNQZXJCbG9jazsKKyAgICAgICAgICAg
IGJsb2NrV2lkdGggID0gMTI7CisgICAgICAgICAgICBibG9ja0hlaWdodCA9IDEyOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzR4NF9VTk9STV9CTE9DSzoK
KyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfNHg0X1NSR0JfQkxPQ0s6CisgICAg
ICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSBBU1RDQnl0ZXNQZXJCbG9jazsKKyAg
ICAgICAgICAgIGJsb2NrV2lkdGggID0gNDsKKyAgICAgICAgICAgIGJsb2NrSGVpZ2h0ID0gNDsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0
SUQ6OkFTVENfNXg0X1VOT1JNX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6
QVNUQ181eDRfU1JHQl9CTE9DSzoKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNQZXJCbG9j
ayA9IEFTVENCeXRlc1BlckJsb2NrOworICAgICAgICAgICAgYmxvY2tXaWR0aCAgPSA1OworICAg
ICAgICAgICAgYmxvY2tIZWlnaHQgPSA0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzV4NHg0X1VOT1JN
X0JMT0NLOgorICAgICAKKyAgICAgICAgCisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpB
U1RDXzV4NV9VTk9STV9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENf
NXg1X1NSR0JfQkxPQ0s6CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSBB
U1RDQnl0ZXNQZXJCbG9jazsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0gNTsKKyAgICAgICAg
ICAgIGJsb2NrSGVpZ2h0ID0gNTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ181eDV4NF9VTk9STV9CTE9D
SzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfNXg1eDRfVU5PUk1fU1JHQl9C
TE9DSzoKKyAgICAgICAgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzV4NXg1X1VOT1JNX0JMT0NLOgor
ICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ181eDV4NV9VTk9STV9TUkdCX0JMT0NL
OgorICAgICAgICB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzZ4NV9VTk9STV9CTE9DSzoKKyAg
ICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfNng1X1NSR0JfQkxPQ0s6CisgICAgICAg
IHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSBBU1RDQnl0ZXNQZXJCbG9jazsKKyAgICAg
ICAgICAgIGJsb2NrV2lkdGggID0gNjsKKyAgICAgICAgICAgIGJsb2NrSGVpZ2h0ID0gNDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0
SUQ6OkFTVENfNng2X1VOT1JNX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6
QVNUQ182eDZfU1JHQl9CTE9DSzoKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNQZXJCbG9j
ayA9IEFTVENCeXRlc1BlckJsb2NrOworICAgICAgICAgICAgYmxvY2tXaWR0aCAgPSA2OworICAg
ICAgICAgICAgYmxvY2tIZWlnaHQgPSA2OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfOHg1X1VOT1JNX0JMT0NLOgorICAg
ICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ184eDVfU1JHQl9CTE9DSzoKKyAgICAgICAg
eworICAgICAgICAgICAgYnl0ZXNQZXJCbG9jayA9IEFTVENCeXRlc1BlckJsb2NrOworICAgICAg
ICAgICAgYmxvY2tXaWR0aCAgPSA4OworICAgICAgICAgICAgYmxvY2tIZWlnaHQgPSA1OworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNhc2UgYW5nbGU6
OkZvcm1hdElEOjpBU1RDXzh4Nl9VTk9STV9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9y
bWF0SUQ6OkFTVENfOHg2X1NSR0JfQkxPQ0s6CisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVz
UGVyQmxvY2sgPSBBU1RDQnl0ZXNQZXJCbG9jazsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0g
ODsKKyAgICAgICAgICAgIGJsb2NrSGVpZ2h0ID0gNjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ184eDhf
VU5PUk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzh4OF9TUkdC
X0JMT0NLOgorICAgICAgICB7CisgICAgICAgICAgICBieXRlc1BlckJsb2NrID0gQVNUQ0J5dGVz
UGVyQmxvY2s7CisgICAgICAgICAgICBibG9ja1dpZHRoICA9IDg7CisgICAgICAgICAgICBibG9j
a0hlaWdodCA9IDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkJQVENfUkdCQV9VTk9STV9CTE9DSzoKKyAgICAg
ICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkJQVENfU1JHQl9BTFBIQV9VTk9STV9CTE9DSzoKKyAg
ICAgICAgeworICAgICAgICAgICAgYnl0ZXNQZXJCbG9jayA9IDE2OworICAgICAgICAgICAgYmxv
Y2tXaWR0aCAgPSA0OworICAgICAgICAgICAgYmxvY2tIZWlnaHQgPSA0OworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElE
OjpQVlJUQzFfUkdCQV8yQlBQX1VOT1JNX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3Jt
YXRJRDo6UFZSVEMxX1JHQl8yQlBQX1VOT1JNX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpG
b3JtYXRJRDo6UFZSVEMxX1JHQl8yQlBQX1VOT1JNX1NSR0JfQkxPQ0s6CisgICAgICAgIHsKKyAg
ICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSAxNjsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0g
ODsKKyAgICAgICAgICAgIGJsb2NrSGVpZ2h0ID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6UFZSVEMxX1JH
QkFfNEJQUF9VTk9STV9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OlBWUlRD
MV9SR0JfNEJQUF9VTk9STV9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OlBW
UlRDMV9SR0JfNEJQUF9VTk9STV9TUkdCX0JMT0NLOgorICAgICAgICB7CisgICAgICAgICAgICBi
eXRlc1BlckJsb2NrID0gMTY7CisgICAgICAgICAgICBibG9ja1dpZHRoICA9IDQ7CisgICAgICAg
ICAgICBibG9ja0hlaWdodCA9IDQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkJDMV9SR0JBX1VOT1JNX0JMT0NL
OgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QkMxX1JHQkFfVU5PUk1fU1JHQl9CTE9D
SzoKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNQZXJCbG9jayA9IDg7CisgICAgICAgICAg
ICBibG9ja1dpZHRoICA9IDQ7CisgICAgICAgICAgICBibG9ja0hlaWdodCA9IDQ7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QkMy
X1JHQkFfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpCQzJfUkdC
QV9VTk9STV9TUkdCX0JMT0NLOgorICAgICAgICB7CisgICAgICAgICAgICBieXRlc1BlckJsb2Nr
ID0gODsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0gNDsKKyAgICAgICAgICAgIGJsb2NrSGVp
Z2h0ID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QkMzX1JHQkFfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNh
c2UgYW5nbGU6OkZvcm1hdElEOjpCQzNfUkdCQV9VTk9STV9TUkdCX0JMT0NLOgorICAgICAgICAg
ICAgCisgICAgICAgIHsKKyAgICAgICAgICAgIGJ5dGVzUGVyQmxvY2sgPSA4OworICAgICAgICAg
ICAgYmxvY2tXaWR0aCAgPSA0OworICAgICAgICAgICAgYmxvY2tIZWlnaHQgPSA0OworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNhc2UgYW5nbGU6OkZv
cm1hdElEOjpCUFRDX1JHQl9TSUdORURfRkxPQVRfQkxPQ0s6CisgICAgICAgIHsKKyAgICAgICAg
ICAgIGJ5dGVzUGVyQmxvY2sgPSAxNjsKKyAgICAgICAgICAgIGJsb2NrV2lkdGggID0gNDsKKyAg
ICAgICAgICAgIGJsb2NrSGVpZ2h0ID0gNDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpCUFRDX1JHQl9VTlNJR05FRF9GTE9BVF9C
TE9DSzoKKyAgICAgICAgeworICAgICAgICAgICAgYnl0ZXNQZXJCbG9jayA9IDE2OworICAgICAg
ICAgICAgYmxvY2tXaWR0aCAgPSA0OworICAgICAgICAgICAgYmxvY2tIZWlnaHQgPSA0OworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgCisKKyAgICAgICAgY2FzZSBhbmds
ZTo6Rm9ybWF0SUQ6OkJDMV9SR0JfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZv
cm1hdElEOjpCQzFfUkdCX1VOT1JNX1NSR0JfQkxPQ0s6CisgICAgICAgIHsKKyAgICAgICAgICAg
IGJ5dGVzUGVyQmxvY2sgPSA4OworICAgICAgICAgICAgYmxvY2tXaWR0aCAgPSA0OworICAgICAg
ICAgICAgYmxvY2tIZWlnaHQgPSA0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgICAgIAorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ18zeDN4M19VTk9S
TV9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfM3gzeDNfVU5PUk1f
U1JHQl9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfNHgzeDNfVU5P
Uk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzR4M3gzX1VOT1JN
X1NSR0JfQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzR4NHgzX1VO
T1JNX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ180eDR4M19VTk9S
TV9TUkdCX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ180eDR4NF9V
Tk9STV9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfNHg0eDRfVU5P
Uk1fU1JHQl9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfNXg0eDRf
VU5PUk1fU1JHQl9CTE9DSzoKKyAgICAgICAgY2FzZSBhbmdsZTo6Rm9ybWF0SUQ6OkFTVENfNng2
eDVfVU5PUk1fQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzZ4Nng1
X1VOT1JNX1NSR0JfQkxPQ0s6CisgICAgICAgIGNhc2UgYW5nbGU6OkZvcm1hdElEOjpBU1RDXzZ4
Nng2X1VOT1JNX0JMT0NLOgorICAgICAgICBjYXNlIGFuZ2xlOjpGb3JtYXRJRDo6QVNUQ182eDZ4
Nl9VTk9STV9TUkdCX0JMT0NLOgorICAgICAgICB7CisgICAgICAgICAgICAvLzNkIEFTVEMgQ29t
cHJlc3Npb24gaXMgdW5hdmFpbGFibGUgb24gTWV0YWwuCisgICAgICAgICAgICBVTlJFQUNIQUJM
RSgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgeworICAgICAgICAgICAgLy9Pbmx5IGNvbXByZXNzZWQgdGV4dHVyZXMg
c3Nob3VsZCBjYWxsIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKyAgICBidWZmZXJT
aXplSW5CeXRlcyA9IGJ5dGVzUGVyQmxvY2sgKiAoKHRleHR1cmVXaWR0aCArIGJsb2NrV2lkdGgg
LSAxKSAvIGJsb2NrV2lkdGgpICogKHRleHR1cmVIZWlnaHQgKyBibG9ja0hlaWdodCAtIDEpIC8g
YmxvY2tIZWlnaHQ7CisgICAgCisgICAgc2l6ZV90IGJsb2Nrc1BlclJvdyA9ICh0ZXh0dXJlV2lk
dGggKyAoYmxvY2tXaWR0aCAtIDEpKSAvIGJsb2NrV2lkdGg7CisgICAgb3V0Qnl0ZXNQZXJSb3cg
PSBibG9ja3NQZXJSb3cgKiBieXRlc1BlckJsb2NrOworICAgIG91dEJ5dGVzUGVySW1hZ2UgPSBi
dWZmZXJTaXplSW5CeXRlczsKKyAgICBDb250ZXh0TXRsICpjb250ZXh0TXRsID0gbXRsOjpHZXRJ
bXBsKGNvbnRleHQpOworICAgIGlmKG10bDo6QnVmZmVyOjpNYWtlQnVmZmVyKGNvbnRleHRNdGws
IGJ1ZmZlclNpemVJbkJ5dGVzLCBudWxscHRyLCAmYnVmZmVyT3V0KSAhPSBhbmdsZTo6UmVzdWx0
OjpDb250aW51ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBy
ZXR1cm4gYnVmZmVyT3V0OworfQorCisKK2FuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZUNvbXByZXNz
ZWRUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGV4dHVyZVJlZiAmdGV4dHVyZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRl
eHR1cmVPYmpGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgSW1hZ2VOYXRpdmVJbmRleCAmaW5kZXgpCit7CisgICAgYXNzZXJ0KHRleHR1cmVPYmpG
b3JtYXQuYWN0dWFsQW5nbGVGb3JtYXQoKS5pc0Jsb2NrKTsKKyAgICBzaXplX3QgYnl0ZXNQZXJS
b3csIGJ5dGVzUGVySW1hZ2U7CisgICAgbXRsOjpCdWZmZXJSZWYgemVyb0J1ZmZlciA9IEdldENv
bXByZXNzZWRCdWZmZXJGb3JUZXh0dXJlV2l0aEZvcm1hdChjb250ZXh0LCB0ZXh0dXJlLCB0ZXh0
dXJlT2JqRm9ybWF0LCBpbmRleCwgYnl0ZXNQZXJSb3csIGJ5dGVzUGVySW1hZ2UpOworICAgIGlm
KHplcm9CdWZmZXIgPT0gbnVsbHB0cikKKyAgICB7CisgICAgICAgIHJldHVybiBhbmdsZTo6UmVz
dWx0OjpTdG9wOworICAgIH0KKyAgICBDb250ZXh0TXRsICpjb250ZXh0TXRsID0gbXRsOjpHZXRJ
bXBsKGNvbnRleHQpOworICAgIGdsOjpFeHRlbnRzIGV4dGVudHMgPSB0ZXh0dXJlLT5zaXplKGlu
ZGV4KTsKKyAgICBpZih0ZXh0dXJlLT5pc0NQVUFjY2Vzc2libGUoKSkKKyAgICB7CisgICAgICAg
IHRleHR1cmUtPnJlcGxhY2VSZWdpb24oY29udGV4dE10bCwgTVRMUmVnaW9uTWFrZTJEKDAsIDAs
IGV4dGVudHMud2lkdGgsIGV4dGVudHMuaGVpZ2h0KSwgaW5kZXguZ2V0TmF0aXZlTGV2ZWwoKSwg
MCwgKGNvbnN0IHVpbnQ4X3QgKil6ZXJvQnVmZmVyLT5nZXQoKS5jb250ZW50cywgYnl0ZXNQZXJS
b3csIDApOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBtdGw6OkJsaXRDb21tYW5k
RW5jb2RlciAqIGJsaXRFbmNvZGVyID0gY29udGV4dE10bC0+Z2V0QmxpdENvbW1hbmRFbmNvZGVy
KCk7CisgICAgICAgIGJsaXRFbmNvZGVyLT5jb3B5QnVmZmVyVG9UZXh0dXJlKHplcm9CdWZmZXIs
IDAsIGJ5dGVzUGVyUm93LCAwLCBNVExTaXplTWFrZShleHRlbnRzLndpZHRoLCBleHRlbnRzLmhl
aWdodCwgMSksIHRleHR1cmUsIDAsIGluZGV4LmdldE5hdGl2ZUxldmVsKCksIE1UTE9yaWdpbk1h
a2UoMCwwLDApLCAwKTsKKyAgICAgICAgYmxpdEVuY29kZXItPmVuZEVuY29kaW5nKCk7CisgICAg
fQorICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKKyAgICAKK30KKwogYW5nbGU6
OlJlc3VsdCBJbml0aWFsaXplVGV4dHVyZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250
ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHR1
cmVSZWYgJnRleHR1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgRm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LApAQCAtMTIxLDEyICs0NzEsMTYgQEAgYW5n
bGU6OlJlc3VsdCBJbml0aWFsaXplVGV4dHVyZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpj
b250ZXh0LAogICAgIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIG1hbnkgcGxh
Y2VzIHRvIGluaXRpYWxpemUgdGhlIGNvbnRlbnQgb2YgYSB0ZXh0dXJlLgogICAgIC8vIFNvIGl0
J3MgYmV0dGVyIHdlIGRvIHRoZSBzYW5pdHkgY2hlY2sgaGVyZSBpbnN0ZWFkIG9mIGxldCB0aGUg
Y2FsbGVycyBkbyBpdCB0aGVtc2VsdmVzOgotICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC52YWxp
ZCgpIHx8IGFjdHVhbEFuZ2xlRm9ybWF0LmlzQmxvY2sgfHwgYWN0dWFsQW5nbGVGb3JtYXQuZGVw
dGhCaXRzID4gMCB8fAorICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC52YWxpZCgpIHx8IGFjdHVh
bEFuZ2xlRm9ybWF0LmRlcHRoQml0cyA+IDAgfHwKICAgICAgICAgYWN0dWFsQW5nbGVGb3JtYXQu
c3RlbmNpbEJpdHMgPiAwKQogICAgIHsKICAgICAgICAgLy8gSWYgZHN0IGZvcm1hdCBpcyBjb21w
cmVzc2VkLCBpZ25vcmUuCiAgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsK
ICAgICB9CisgICAgaWYoYWN0dWFsQW5nbGVGb3JtYXQuaXNCbG9jaykKKyAgICB7CisgICAgICAg
IHJldHVybiBJbml0aWFsaXplQ29tcHJlc3NlZFRleHR1cmVDb250ZW50cyhjb250ZXh0LCB0ZXh0
dXJlLCB0ZXh0dXJlT2JqRm9ybWF0LCBpbmRleCk7CisgICAgfQogCiAgICAgZ2w6OkV4dGVudHMg
c2l6ZSA9IHRleHR1cmUtPnNpemUoaW5kZXgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437922</attachid>
            <date>2021-09-10 16:30:16 -0700</date>
            <delta_ts>2021-09-10 17:48:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229941-20210910163015.patch</filename>
            <type>text/plain</type>
            <size>5145</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uMTQ2MGJhOWYzMTYw
OWRkOGY3NTY3ZDYxYWIwY2Y5MDE4MWE5YzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW06CisgICAgICAgIChyeDo6bXRsOjpHZXRD
b21wcmVzc2VkQnVmZmVyRm9yVGV4dHVyZVdpdGhGb3JtYXQpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyk6CisKIDIwMjEtMDgtMzEgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9nbHNsL21pc2MvZnJhZ2NvbG9yLWZyYWdkYXRhLWludmFyaWFudC5odG1sIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvbXRsX3V0aWxzLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL210bF91dGlscy5tbQppbmRleCBiZDEyYzUzZmQ0NmVkZTA3NWE1M2Y2OWU3
NGNkOWEyODc5NGZlZDQ4Li4yMDdlMDBhODZjNzQwMTBmOThiYmI2YTFiZTEzZTQ0NzRmZTBhNTE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvbXRsX3V0aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KQEAgLTEwMyw2ICsxMDMsNjQgQEAg
R0xpbnQgR2V0U2xpY2VPckRlcHRoKGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4KQogCiB9
CiAKK2Jvb2wgR2V0Q29tcHJlc3NlZEJ1ZmZlclNpemVGb3JUZXh0dXJlV2l0aEZvcm1hdChjb25z
dCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRleHR1cmVPYmpGb3JtYXQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmlu
ZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
JiBvdXRCeXRlc1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90ICYgb3V0Qnl0ZXNQZXJJbWFnZSkKK3sKKyAgICBtdGw6OkJ1ZmZlclJlZiBi
dWZmZXJPdXQgPSBudWxscHRyOworICAgIGdsOjpFeHRlbnRzIHNpemUgPSB0ZXh0dXJlLT5zaXpl
KGluZGV4KTsKKyAgICBHTHVpbnQgYnVmZmVyU2l6ZUluQnl0ZXM7CisgICAgaWYoIXRleHR1cmVP
YmpGb3JtYXQuYWN0dWFsSW50ZXJuYWxGb3JtYXQoKS5jb21wdXRlQ29tcHJlc3NlZEltYWdlU2l6
ZShzaXplLCAmYnVmZmVyU2l6ZUluQnl0ZXMpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICAKKyAgICBvdXRCeXRlc1BlclJvdyA9CisgICAgICAgICAoKHNpemUud2lk
dGggKyB0ZXh0dXJlT2JqRm9ybWF0LmFjdHVhbEludGVybmFsRm9ybWF0KCkuY29tcHJlc3NlZEJs
b2NrV2lkdGggLSAxdSkgLyB0ZXh0dXJlT2JqRm9ybWF0LmFjdHVhbEludGVybmFsRm9ybWF0KCku
Y29tcHJlc3NlZEJsb2NrV2lkdGgpICogdGV4dHVyZU9iakZvcm1hdC5hY3R1YWxBbmdsZUZvcm1h
dCgpLnBpeGVsQnl0ZXM7CisgICAgb3V0Qnl0ZXNQZXJJbWFnZSA9IGJ1ZmZlclNpemVJbkJ5dGVz
OworICAgIHJldHVybiB0cnVlOworfQorCisKK2FuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZUNvbXBy
ZXNzZWRUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGV4dHVyZVJlZiAmdGV4dHVy
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXQg
JnRleHR1cmVPYmpGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgSW1hZ2VOYXRpdmVJbmRleCAmaW5kZXgpCit7CisgICAgYXNzZXJ0KHRleHR1cmVP
YmpGb3JtYXQuYWN0dWFsQW5nbGVGb3JtYXQoKS5pc0Jsb2NrKTsKKyAgICBzaXplX3QgYnl0ZXNQ
ZXJSb3cgPSAwOworICAgIHNpemVfdCBieXRlc1BlckltYWdlID0gMDsKKyAgICAKKyAgICBpZigh
R2V0Q29tcHJlc3NlZEJ1ZmZlclNpemVGb3JUZXh0dXJlV2l0aEZvcm1hdCh0ZXh0dXJlLCB0ZXh0
dXJlT2JqRm9ybWF0LCBpbmRleCwgYnl0ZXNQZXJSb3csIGJ5dGVzUGVySW1hZ2UpKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgfTsKKyAgICBDb250ZXh0
TXRsICpjb250ZXh0TXRsID0gbXRsOjpHZXRJbXBsKGNvbnRleHQpOworICAgIGdsOjpFeHRlbnRz
IGV4dGVudHMgPSB0ZXh0dXJlLT5zaXplKGluZGV4KTsKKyAgICBpZih0ZXh0dXJlLT5pc0NQVUFj
Y2Vzc2libGUoKSkKKyAgICB7CisgICAgICAgIGFuZ2xlOjpNZW1vcnlCdWZmZXIgYnVmZmVyOwor
ICAgICAgICBpZighYnVmZmVyLnJlc2l6ZShieXRlc1BlckltYWdlKSkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgICAgIH0KKyAgICAgICAg
YnVmZmVyLmZpbGwoMCk7CisgICAgICAgIHRleHR1cmUtPnJlcGxhY2VSZWdpb24oY29udGV4dE10
bCwgTVRMUmVnaW9uTWFrZTJEKDAsIDAsIGV4dGVudHMud2lkdGgsIGV4dGVudHMuaGVpZ2h0KSwg
aW5kZXguZ2V0TmF0aXZlTGV2ZWwoKSwgMCwgYnVmZmVyLmRhdGEoKSwgYnl0ZXNQZXJSb3csIDAp
OworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBtdGw6OkJ1ZmZlclJlZiB6ZXJvQnVm
ZmVyOworICAgICAgICBBTkdMRV9UUlkobXRsOjpCdWZmZXI6Ok1ha2VCdWZmZXIoY29udGV4dE10
bCwgYnl0ZXNQZXJJbWFnZSwgbnVsbHB0ciwgJnplcm9CdWZmZXIpKTsKKyAgICAgICAgbXRsOjpC
bGl0Q29tbWFuZEVuY29kZXIgKiBibGl0RW5jb2RlciA9IGNvbnRleHRNdGwtPmdldEJsaXRDb21t
YW5kRW5jb2RlcigpOworICAgICAgICBibGl0RW5jb2Rlci0+Y29weUJ1ZmZlclRvVGV4dHVyZSh6
ZXJvQnVmZmVyLCAwLCBieXRlc1BlclJvdywgMCwgTVRMU2l6ZU1ha2UoZXh0ZW50cy53aWR0aCwg
ZXh0ZW50cy5oZWlnaHQsIDEpLCB0ZXh0dXJlLCAwLCBpbmRleC5nZXROYXRpdmVMZXZlbCgpLCBN
VExPcmlnaW5NYWtlKDAsMCwwKSwgMCk7CisgICAgICAgIGJsaXRFbmNvZGVyLT5lbmRFbmNvZGlu
ZygpOworICAgIH0KKyAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CisgICAgCit9
CisKIGFuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6Q29u
dGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEZvcm1hdCAmdGV4dHVyZU9iakZvcm1hdCwKQEAgLTEyMSwxMiArMTc5
LDE2IEBAIGFuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6
Q29udGV4dCAqY29udGV4dCwKICAgICAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBp
biBtYW55IHBsYWNlcyB0byBpbml0aWFsaXplIHRoZSBjb250ZW50IG9mIGEgdGV4dHVyZS4KICAg
ICAvLyBTbyBpdCdzIGJldHRlciB3ZSBkbyB0aGUgc2FuaXR5IGNoZWNrIGhlcmUgaW5zdGVhZCBv
ZiBsZXQgdGhlIGNhbGxlcnMgZG8gaXQgdGhlbXNlbHZlczoKLSAgICBpZiAoIXRleHR1cmVPYmpG
b3JtYXQudmFsaWQoKSB8fCBhY3R1YWxBbmdsZUZvcm1hdC5pc0Jsb2NrIHx8IGFjdHVhbEFuZ2xl
Rm9ybWF0LmRlcHRoQml0cyA+IDAgfHwKKyAgICBpZiAoIXRleHR1cmVPYmpGb3JtYXQudmFsaWQo
KSB8fCBhY3R1YWxBbmdsZUZvcm1hdC5kZXB0aEJpdHMgPiAwIHx8CiAgICAgICAgIGFjdHVhbEFu
Z2xlRm9ybWF0LnN0ZW5jaWxCaXRzID4gMCkKICAgICB7Ci0gICAgICAgIC8vIElmIGRzdCBmb3Jt
YXQgaXMgY29tcHJlc3NlZCwgaWdub3JlLgorICAgICAgICAvLyBJZiBkc3QgZm9ybWF0IGlzIGRl
cHRoIG9yIHN0ZW5jaWwsIGlnbm9yZS4gVGhpcyBwYXRoIGlzIGhhbmRsZWQgc2VwZXJhdGxleS4K
ICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KKyAgICBpZihh
Y3R1YWxBbmdsZUZvcm1hdC5pc0Jsb2NrKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEluaXRpYWxp
emVDb21wcmVzc2VkVGV4dHVyZUNvbnRlbnRzKGNvbnRleHQsIHRleHR1cmUsIHRleHR1cmVPYmpG
b3JtYXQsIGluZGV4KTsKKyAgICB9CiAKICAgICBnbDo6RXh0ZW50cyBzaXplID0gdGV4dHVyZS0+
c2l6ZShpbmRleCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437932</attachid>
            <date>2021-09-10 17:48:54 -0700</date>
            <delta_ts>2021-09-10 18:26:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229941-20210910174854.patch</filename>
            <type>text/plain</type>
            <size>5464</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uMTQ2MGJhOWYzMTYw
OWRkOGY3NTY3ZDYxYWIwY2Y5MDE4MWE5YzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW06CisgICAgICAgIChyeDo6bXRsOjpHZXRD
b21wcmVzc2VkQnVmZmVyRm9yVGV4dHVyZVdpdGhGb3JtYXQpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyk6CisKIDIwMjEtMDgtMzEgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9nbHNsL21pc2MvZnJhZ2NvbG9yLWZyYWdkYXRhLWludmFyaWFudC5odG1sIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvbXRsX3V0aWxzLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL210bF91dGlscy5tbQppbmRleCBiZDEyYzUzZmQ0NmVkZTA3NWE1M2Y2OWU3
NGNkOWEyODc5NGZlZDQ4Li4zNzI3OTg0NTkxZGZjMmQ3YzFiOTFlOWEyNjMzMDI3ZTVjMjNjZWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvbXRsX3V0aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KQEAgLTEwMyw2ICsxMDMsNzAgQEAg
R0xpbnQgR2V0U2xpY2VPckRlcHRoKGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4KQogCiB9
CiAKK2Jvb2wgR2V0Q29tcHJlc3NlZEJ1ZmZlclNpemVBbmRSb3dMZW5ndGhGb3JUZXh0dXJlV2l0
aEZvcm1hdChjb25zdCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRleHR1cmVPYmpGb3JtYXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0
aXZlSW5kZXggJmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgJiBvdXRCeXRlc1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90ICYgb3V0Qnl0ZXNQZXJJbWFnZSkKK3sKKyAgICBnbDo6
RXh0ZW50cyBzaXplID0gdGV4dHVyZS0+c2l6ZShpbmRleCk7CisgICAgR0x1aW50IGJ1ZmZlclNp
emVJbkJ5dGVzOworICAgIHVpbnQzMl90IGJ1ZmZlclJvd0xlbmd0aDsKKyAgICBpZighdGV4dHVy
ZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFsRm9ybWF0KCkuY29tcHV0ZUNvbXByZXNzZWRJbWFn
ZVNpemUoc2l6ZSwgJmJ1ZmZlclNpemVJbkJ5dGVzKSkKKyAgICB7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgaWYoIXRleHR1cmVPYmpGb3JtYXQuaW50ZW5kZWRJbnRlcm5hbEZv
cm1hdCgpLmNvbXB1dGVCdWZmZXJSb3dMZW5ndGgoc2l6ZS53aWR0aCwgJmJ1ZmZlclJvd0xlbmd0
aCkpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG91dEJ5dGVzUGVy
SW1hZ2UgPSBidWZmZXJTaXplSW5CeXRlczsKKyAgICBvdXRCeXRlc1BlclJvdyA9IGJ1ZmZlclJv
d0xlbmd0aDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCithbmdsZTo6UmVzdWx0IEluaXRpYWxp
emVDb21wcmVzc2VkVGV4dHVyZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHR1cmVSZWYg
JnRleHR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Rm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4KQoreworICAgIGFzc2VydCh0
ZXh0dXJlT2JqRm9ybWF0LmFjdHVhbEFuZ2xlRm9ybWF0KCkuaXNCbG9jayk7CisgICAgc2l6ZV90
IGJ5dGVzUGVyUm93ID0gMDsKKyAgICBzaXplX3QgYnl0ZXNQZXJJbWFnZSA9IDA7CisgICAgCisg
ICAgaWYoIUdldENvbXByZXNzZWRCdWZmZXJTaXplQW5kUm93TGVuZ3RoRm9yVGV4dHVyZVdpdGhG
b3JtYXQodGV4dHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJ5dGVzUGVyUm93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUGVySW1hZ2UpKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgfTsKKyAgICBDb250ZXh0TXRsICpj
b250ZXh0TXRsID0gbXRsOjpHZXRJbXBsKGNvbnRleHQpOworICAgIGdsOjpFeHRlbnRzIGV4dGVu
dHMgPSB0ZXh0dXJlLT5zaXplKGluZGV4KTsKKyAgICBpZih0ZXh0dXJlLT5pc0NQVUFjY2Vzc2li
bGUoKSkKKyAgICB7CisgICAgICAgIGFuZ2xlOjpNZW1vcnlCdWZmZXIgYnVmZmVyOworICAgICAg
ICBpZighYnVmZmVyLnJlc2l6ZShieXRlc1BlckltYWdlKSkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVy
LmZpbGwoMCk7CisgICAgICAgIHRleHR1cmUtPnJlcGxhY2VSZWdpb24oY29udGV4dE10bCwgTVRM
UmVnaW9uTWFrZTJEKDAsIDAsIGV4dGVudHMud2lkdGgsIGV4dGVudHMuaGVpZ2h0KSwgaW5kZXgu
Z2V0TmF0aXZlTGV2ZWwoKSwgMCwgYnVmZmVyLmRhdGEoKSwgYnl0ZXNQZXJSb3csIDApOworICAg
IH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBtdGw6OkJ1ZmZlclJlZiB6ZXJvQnVmZmVyOwor
ICAgICAgICBBTkdMRV9UUlkobXRsOjpCdWZmZXI6Ok1ha2VCdWZmZXIoY29udGV4dE10bCwgYnl0
ZXNQZXJJbWFnZSwgbnVsbHB0ciwgJnplcm9CdWZmZXIpKTsKKyAgICAgICAgbXRsOjpCbGl0Q29t
bWFuZEVuY29kZXIgKiBibGl0RW5jb2RlciA9IGNvbnRleHRNdGwtPmdldEJsaXRDb21tYW5kRW5j
b2RlcigpOworICAgICAgICBibGl0RW5jb2Rlci0+Y29weUJ1ZmZlclRvVGV4dHVyZSh6ZXJvQnVm
ZmVyLCAwLCBieXRlc1BlclJvdywgMCwgTVRMU2l6ZU1ha2UoZXh0ZW50cy53aWR0aCwgZXh0ZW50
cy5oZWlnaHQsIDEpLCB0ZXh0dXJlLCAwLCBpbmRleC5nZXROYXRpdmVMZXZlbCgpLCBNVExPcmln
aW5NYWtlKDAsMCwwKSwgMCk7CisgICAgICAgIGJsaXRFbmNvZGVyLT5lbmRFbmNvZGluZygpOwor
ICAgIH0KKyAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CisgICAgCit9CisKIGFu
Z2xlOjpSZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBU
ZXh0dXJlUmVmICZ0ZXh0dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEZvcm1hdCAmdGV4dHVyZU9iakZvcm1hdCwKQEAgLTEyMSwxMiArMTg1LDE3IEBA
IGFuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4
dCAqY29udGV4dCwKICAgICAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbiBtYW55
IHBsYWNlcyB0byBpbml0aWFsaXplIHRoZSBjb250ZW50IG9mIGEgdGV4dHVyZS4KICAgICAvLyBT
byBpdCdzIGJldHRlciB3ZSBkbyB0aGUgc2FuaXR5IGNoZWNrIGhlcmUgaW5zdGVhZCBvZiBsZXQg
dGhlIGNhbGxlcnMgZG8gaXQgdGhlbXNlbHZlczoKLSAgICBpZiAoIXRleHR1cmVPYmpGb3JtYXQu
dmFsaWQoKSB8fCBhY3R1YWxBbmdsZUZvcm1hdC5pc0Jsb2NrIHx8IGFjdHVhbEFuZ2xlRm9ybWF0
LmRlcHRoQml0cyA+IDAgfHwKKyAgICAvLyBUT0RPOiAoa3BpZGRpbmd0b24pIHVwZGF0ZSBJbml0
aWFsaXplVGV4dHVyZUNvbnRlbnRzIHdpdGggYW4gdXBzdHJlYW1lZCB2ZXJzaW9uIHRoYXQgaGFu
ZGxlcyBkZXB0aC9zdGVuY2lsIHRleHR1cmVzLgorICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC52
YWxpZCgpIHx8IGFjdHVhbEFuZ2xlRm9ybWF0LmRlcHRoQml0cyA+IDAgfHwKICAgICAgICAgYWN0
dWFsQW5nbGVGb3JtYXQuc3RlbmNpbEJpdHMgPiAwKQogICAgIHsKLSAgICAgICAgLy8gSWYgZHN0
IGZvcm1hdCBpcyBjb21wcmVzc2VkLCBpZ25vcmUuCisgICAgICAgIC8vIERlcHRoIG9yIHN0ZW5j
aWwgdGV4dHVyZXMgbmVlZCBhbiB1cGRhdGVkIHBhdGguCiAgICAgICAgIHJldHVybiBhbmdsZTo6
UmVzdWx0OjpDb250aW51ZTsKICAgICB9CisgICAgaWYoYWN0dWFsQW5nbGVGb3JtYXQuaXNCbG9j
aykKKyAgICB7CisgICAgICAgIHJldHVybiBJbml0aWFsaXplQ29tcHJlc3NlZFRleHR1cmVDb250
ZW50cyhjb250ZXh0LCB0ZXh0dXJlLCB0ZXh0dXJlT2JqRm9ybWF0LCBpbmRleCk7CisgICAgfQog
CiAgICAgZ2w6OkV4dGVudHMgc2l6ZSA9IHRleHR1cmUtPnNpemUoaW5kZXgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437933</attachid>
            <date>2021-09-10 18:26:13 -0700</date>
            <delta_ts>2021-09-10 18:27:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229941-20210910182613.patch</filename>
            <type>text/plain</type>
            <size>7153</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uMTQ2MGJhOWYzMTYw
OWRkOGY3NTY3ZDYxYWIwY2Y5MDE4MWE5YzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW06CisgICAgICAgIChyeDo6bXRsOjpHZXRD
b21wcmVzc2VkQnVmZmVyRm9yVGV4dHVyZVdpdGhGb3JtYXQpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyk6CisKIDIwMjEtMDgtMzEgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9nbHNsL21pc2MvZnJhZ2NvbG9yLWZyYWdkYXRhLWludmFyaWFudC5odG1sIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvbXRsX3V0aWxzLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL210bF91dGlscy5tbQppbmRleCBiZDEyYzUzZmQ0NmVkZTA3NWE1M2Y2OWU3
NGNkOWEyODc5NGZlZDQ4Li45YTE1Zjk1NzcwNDI2MjhjOGE2NWY1ZmEyMTAyZmJiY2QzMjVjNjhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvbXRsX3V0aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KQEAgLTEwMyw2ICsxMDMsODIgQEAg
R0xpbnQgR2V0U2xpY2VPckRlcHRoKGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4KQogCiB9
CiAKK2Jvb2wgR2V0Q29tcHJlc3NlZEJ1ZmZlclNpemVBbmRSb3dMZW5ndGhGb3JUZXh0dXJlV2l0
aEZvcm1hdChjb25zdCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRleHR1cmVPYmpGb3JtYXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0
aXZlSW5kZXggJmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgJiBvdXRCeXRlc1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90ICYgb3V0Qnl0ZXNQZXJJbWFnZSkKK3sKKyAgICBnbDo6
RXh0ZW50cyBzaXplID0gdGV4dHVyZS0+c2l6ZShpbmRleCk7CisgICAgR0x1aW50IGJ1ZmZlclNp
emVJbkJ5dGVzOworICAgIHVpbnQzMl90IGJ1ZmZlclJvd0xlbmd0aDsKKyAgICBpZighdGV4dHVy
ZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFsRm9ybWF0KCkuY29tcHV0ZUNvbXByZXNzZWRJbWFn
ZVNpemUoc2l6ZSwgJmJ1ZmZlclNpemVJbkJ5dGVzKSkKKyAgICB7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgaWYoIXRleHR1cmVPYmpGb3JtYXQuaW50ZW5kZWRJbnRlcm5hbEZv
cm1hdCgpLmNvbXB1dGVCdWZmZXJSb3dMZW5ndGgoc2l6ZS53aWR0aCwgJmJ1ZmZlclJvd0xlbmd0
aCkpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG91dEJ5dGVzUGVy
SW1hZ2UgPSBidWZmZXJTaXplSW5CeXRlczsKKyAgICBvdXRCeXRlc1BlclJvdyA9IGJ1ZmZlclJv
d0xlbmd0aDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCithbmdsZTo6UmVzdWx0IEluaXRpYWxp
emVDb21wcmVzc2VkVGV4dHVyZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHR1cmVSZWYg
JnRleHR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Rm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQgbGF5ZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludCBzdGFydERlcHRoKQoreworICAg
IGFzc2VydCh0ZXh0dXJlT2JqRm9ybWF0LmFjdHVhbEFuZ2xlRm9ybWF0KCkuaXNCbG9jayk7Cisg
ICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gMDsKKyAgICBzaXplX3QgYnl0ZXNQZXJJbWFnZSA9IDA7
CisgICAgCisgICAgaWYoIUdldENvbXByZXNzZWRCdWZmZXJTaXplQW5kUm93TGVuZ3RoRm9yVGV4
dHVyZVdpdGhGb3JtYXQodGV4dHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJ5dGVzUGVyUm93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUGVySW1hZ2UpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgfTsKKyAgICBDb250
ZXh0TXRsICpjb250ZXh0TXRsID0gbXRsOjpHZXRJbXBsKGNvbnRleHQpOworICAgIGdsOjpFeHRl
bnRzIGV4dGVudHMgPSB0ZXh0dXJlLT5zaXplKGluZGV4KTsKKyAgICBpZih0ZXh0dXJlLT5pc0NQ
VUFjY2Vzc2libGUoKSkKKyAgICB7CisgICAgICAgIGFuZ2xlOjpNZW1vcnlCdWZmZXIgYnVmZmVy
OworICAgICAgICBpZighYnVmZmVyLnJlc2l6ZShieXRlc1BlckltYWdlKSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgICAgIH0KKyAgICAg
ICAgYnVmZmVyLmZpbGwoMCk7CisgICAgICAgIGZvciAoTlNVSW50ZWdlciBkID0gMDsgZCA8IHN0
YXRpY19jYXN0PE5TVUludGVnZXI+KGV4dGVudHMuZGVwdGgpOyArK2QpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8gbXRsVGV4dHVyZVJlZ2lvbiA9IE1UTFJlZ2lvbk1ha2UyRCgwLCAwLCBl
eHRlbnRzLndpZHRoLCBleHRlbnRzLmhlaWdodCk7CisgICAgICAgICAgICBtdGxUZXh0dXJlUmVn
aW9uLm9yaWdpbi56ID0gZCArIHN0YXJ0RGVwdGg7CisgICAgICAgICAgICB0ZXh0dXJlLT5yZXBs
YWNlUmVnaW9uKGNvbnRleHRNdGwsIG10bFRleHR1cmVSZWdpb24sIGluZGV4LmdldE5hdGl2ZUxl
dmVsKCksIGxheWVyLCBidWZmZXIuZGF0YSgpLCBieXRlc1BlclJvdywgMCk7CisgICAgICAgIH0K
KyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgbXRsOjpCdWZmZXJSZWYgemVyb0J1ZmZl
cjsKKyAgICAgICAgQU5HTEVfVFJZKG10bDo6QnVmZmVyOjpNYWtlQnVmZmVyKGNvbnRleHRNdGws
IGJ5dGVzUGVySW1hZ2UsIG51bGxwdHIsICZ6ZXJvQnVmZmVyKSk7CisgICAgICAgIG10bDo6Qmxp
dENvbW1hbmRFbmNvZGVyICogYmxpdEVuY29kZXIgPSBjb250ZXh0TXRsLT5nZXRCbGl0Q29tbWFu
ZEVuY29kZXIoKTsKKyAgICAgICAgZm9yIChOU1VJbnRlZ2VyIGQgPSAwOyBkIDwgc3RhdGljX2Nh
c3Q8TlNVSW50ZWdlcj4oZXh0ZW50cy5kZXB0aCk7ICsrZCkKKyAgICAgICAgeworICAgICAgICAg
ICAgYXV0byBibGl0T3JpZ2luID0gTVRMT3JpZ2luTWFrZSgwLDAsZCArIHN0YXJ0RGVwdGgpOwor
ICAgICAgICAgICAgYmxpdEVuY29kZXItPmNvcHlCdWZmZXJUb1RleHR1cmUoemVyb0J1ZmZlciwg
MCwgYnl0ZXNQZXJSb3csIDAsIE1UTFNpemVNYWtlKGV4dGVudHMud2lkdGgsIGV4dGVudHMuaGVp
Z2h0LCAxKSwgdGV4dHVyZSwgbGF5ZXIsIGluZGV4LmdldE5hdGl2ZUxldmVsKCksYmxpdE9yaWdp
biwgMCk7CisgICAgICAgIH0KKyAgICAgIAorICAgICAgICBibGl0RW5jb2Rlci0+ZW5kRW5jb2Rp
bmcoKTsKKyAgICB9CisgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOworICAgIAor
fQorCiBhbmdsZTo6UmVzdWx0IEluaXRpYWxpemVUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6OkNv
bnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVGV4dHVyZVJlZiAmdGV4dHVyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRleHR1cmVPYmpGb3JtYXQsCkBAIC0xMjEsMTIgKzE5
NywxNCBAQCBhbmdsZTo6UmVzdWx0IEluaXRpYWxpemVUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCiAgICAgCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
aW4gbWFueSBwbGFjZXMgdG8gaW5pdGlhbGl6ZSB0aGUgY29udGVudCBvZiBhIHRleHR1cmUuCiAg
ICAgLy8gU28gaXQncyBiZXR0ZXIgd2UgZG8gdGhlIHNhbml0eSBjaGVjayBoZXJlIGluc3RlYWQg
b2YgbGV0IHRoZSBjYWxsZXJzIGRvIGl0IHRoZW1zZWx2ZXM6Ci0gICAgaWYgKCF0ZXh0dXJlT2Jq
Rm9ybWF0LnZhbGlkKCkgfHwgYWN0dWFsQW5nbGVGb3JtYXQuaXNCbG9jayB8fCBhY3R1YWxBbmds
ZUZvcm1hdC5kZXB0aEJpdHMgPiAwIHx8CisgICAgLy8gVE9ETzogKGtwaWRkaW5ndG9uKSB1cGRh
dGUgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyB3aXRoIGFuIHVwc3RyZWFtZWQgdmVyc2lvbiB0
aGF0IGhhbmRsZXMgZGVwdGgvc3RlbmNpbCB0ZXh0dXJlcy4KKyAgICBpZiAoIXRleHR1cmVPYmpG
b3JtYXQudmFsaWQoKSB8fCBhY3R1YWxBbmdsZUZvcm1hdC5kZXB0aEJpdHMgPiAwIHx8CiAgICAg
ICAgIGFjdHVhbEFuZ2xlRm9ybWF0LnN0ZW5jaWxCaXRzID4gMCkKICAgICB7Ci0gICAgICAgIC8v
IElmIGRzdCBmb3JtYXQgaXMgY29tcHJlc3NlZCwgaWdub3JlLgorICAgICAgICAvLyBEZXB0aCBv
ciBzdGVuY2lsIHRleHR1cmVzIG5lZWQgYW4gdXBkYXRlZCBwYXRoLgogICAgICAgICByZXR1cm4g
YW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiAgICAgfQorICAKIAogICAgIGdsOjpFeHRlbnRzIHNp
emUgPSB0ZXh0dXJlLT5zaXplKGluZGV4KTsKIApAQCAtMTUxLDYgKzIyOSwxMSBAQCBhbmdsZTo6
UmVzdWx0IEluaXRpYWxpemVUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRl
eHQsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAg
aWYoYWN0dWFsQW5nbGVGb3JtYXQuaXNCbG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBJbml0
aWFsaXplQ29tcHJlc3NlZFRleHR1cmVDb250ZW50cyhjb250ZXh0LCB0ZXh0dXJlLCB0ZXh0dXJl
T2JqRm9ybWF0LCBpbmRleCwgbGF5ZXIsIHN0YXJ0RGVwdGgpOworICAgIH0KIAogICAgIGlmICh0
ZXh0dXJlLT5pc0NQVUFjY2Vzc2libGUoKSAmJiBpbmRleC5nZXRUeXBlKCkgIT0gZ2w6OlRleHR1
cmVUeXBlOjpfMkRNdWx0aXNhbXBsZSAmJgogICAgICAgICBpbmRleC5nZXRUeXBlKCkgIT0gZ2w6
OlRleHR1cmVUeXBlOjpfMkRNdWx0aXNhbXBsZUFycmF5ICYmICFmb3JjZUdQVUluaXRpYWxpemF0
aW9uKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzg1ZGM0YjhhNmIxNjAxZjlhYmUxZGIwMThjOGIy
MGQ1NDI1NGI3YS4uZjYzNTJmNThiN2E5Zjg0ZTM0NjM2OWEyNDVlOGUxZTY0NmMyMzY3MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0zNjk3LDYgKzM2OTcsNyBAQCB3ZWJnbC8yLjAueS9jb25mb3Jt
YW5jZS90ZXh0dXJlcy9taXNjL3RleHR1cmUtY29ybmVyLWNhc2UtdmlkZW9zLmh0bWwgWyBQYXNz
IF0KIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9mcmFnY29sb3ItZnJhZ2RhdGEt
aW52YXJpYW50Lmh0bWwgWyBQYXNzIF0KIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlMi9jb250ZXh0
L2NvbnN0YW50cy1hbmQtcHJvcGVydGllcy0yLmh0bWwgWyBQYXNzIF0KIHdlYmdsLzIuMC55L2Nv
bmZvcm1hbmNlMi92ZXJ0ZXhfYXJyYXlzL3ZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBbIFBhc3Mg
XQord2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRl
eHR1cmUtczN0Yy1zcmdiLmh0bWwgWyBQYXNzIF0KIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2V4
dGVuc2lvbnMvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBbIFBhc3MgXQogCiAjIFdlYkdM
IDEuMC4zIGFuZCAyLjAuMCB0ZXN0cyB3aGVyZSBiZWhhdmlvciBpcyBvYnNvbGV0ZSBhbmQgV2Vi
S2l0IGNvbnRhaW5zIGltcGxlbWVudGF0aW9uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437935</attachid>
            <date>2021-09-10 18:27:27 -0700</date>
            <delta_ts>2021-09-15 12:35:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229941-20210910182726.patch</filename>
            <type>text/plain</type>
            <size>7913</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uMTQ2MGJhOWYzMTYw
OWRkOGY3NTY3ZDYxYWIwY2Y5MDE4MWE5YzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW06CisgICAgICAgIChyeDo6bXRsOjpHZXRD
b21wcmVzc2VkQnVmZmVyRm9yVGV4dHVyZVdpdGhGb3JtYXQpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyk6CisKIDIwMjEtMDgtMzEgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9nbHNsL21pc2MvZnJhZ2NvbG9yLWZyYWdkYXRhLWludmFyaWFudC5odG1sIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvbXRsX3V0aWxzLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL210bF91dGlscy5tbQppbmRleCBiZDEyYzUzZmQ0NmVkZTA3NWE1M2Y2OWU3
NGNkOWEyODc5NGZlZDQ4Li45YTE1Zjk1NzcwNDI2MjhjOGE2NWY1ZmEyMTAyZmJiY2QzMjVjNjhm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvbXRsX3V0aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KQEAgLTEwMyw2ICsxMDMsODIgQEAg
R0xpbnQgR2V0U2xpY2VPckRlcHRoKGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4KQogCiB9
CiAKK2Jvb2wgR2V0Q29tcHJlc3NlZEJ1ZmZlclNpemVBbmRSb3dMZW5ndGhGb3JUZXh0dXJlV2l0
aEZvcm1hdChjb25zdCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRleHR1cmVPYmpGb3JtYXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0
aXZlSW5kZXggJmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgJiBvdXRCeXRlc1BlclJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90ICYgb3V0Qnl0ZXNQZXJJbWFnZSkKK3sKKyAgICBnbDo6
RXh0ZW50cyBzaXplID0gdGV4dHVyZS0+c2l6ZShpbmRleCk7CisgICAgR0x1aW50IGJ1ZmZlclNp
emVJbkJ5dGVzOworICAgIHVpbnQzMl90IGJ1ZmZlclJvd0xlbmd0aDsKKyAgICBpZighdGV4dHVy
ZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFsRm9ybWF0KCkuY29tcHV0ZUNvbXByZXNzZWRJbWFn
ZVNpemUoc2l6ZSwgJmJ1ZmZlclNpemVJbkJ5dGVzKSkKKyAgICB7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgaWYoIXRleHR1cmVPYmpGb3JtYXQuaW50ZW5kZWRJbnRlcm5hbEZv
cm1hdCgpLmNvbXB1dGVCdWZmZXJSb3dMZW5ndGgoc2l6ZS53aWR0aCwgJmJ1ZmZlclJvd0xlbmd0
aCkpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG91dEJ5dGVzUGVy
SW1hZ2UgPSBidWZmZXJTaXplSW5CeXRlczsKKyAgICBvdXRCeXRlc1BlclJvdyA9IGJ1ZmZlclJv
d0xlbmd0aDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCithbmdsZTo6UmVzdWx0IEluaXRpYWxp
emVDb21wcmVzc2VkVGV4dHVyZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHR1cmVSZWYg
JnRleHR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Rm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQgbGF5ZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludCBzdGFydERlcHRoKQoreworICAg
IGFzc2VydCh0ZXh0dXJlT2JqRm9ybWF0LmFjdHVhbEFuZ2xlRm9ybWF0KCkuaXNCbG9jayk7Cisg
ICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gMDsKKyAgICBzaXplX3QgYnl0ZXNQZXJJbWFnZSA9IDA7
CisgICAgCisgICAgaWYoIUdldENvbXByZXNzZWRCdWZmZXJTaXplQW5kUm93TGVuZ3RoRm9yVGV4
dHVyZVdpdGhGb3JtYXQodGV4dHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJ5dGVzUGVyUm93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUGVySW1hZ2UpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgfTsKKyAgICBDb250
ZXh0TXRsICpjb250ZXh0TXRsID0gbXRsOjpHZXRJbXBsKGNvbnRleHQpOworICAgIGdsOjpFeHRl
bnRzIGV4dGVudHMgPSB0ZXh0dXJlLT5zaXplKGluZGV4KTsKKyAgICBpZih0ZXh0dXJlLT5pc0NQ
VUFjY2Vzc2libGUoKSkKKyAgICB7CisgICAgICAgIGFuZ2xlOjpNZW1vcnlCdWZmZXIgYnVmZmVy
OworICAgICAgICBpZighYnVmZmVyLnJlc2l6ZShieXRlc1BlckltYWdlKSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgICAgIH0KKyAgICAg
ICAgYnVmZmVyLmZpbGwoMCk7CisgICAgICAgIGZvciAoTlNVSW50ZWdlciBkID0gMDsgZCA8IHN0
YXRpY19jYXN0PE5TVUludGVnZXI+KGV4dGVudHMuZGVwdGgpOyArK2QpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8gbXRsVGV4dHVyZVJlZ2lvbiA9IE1UTFJlZ2lvbk1ha2UyRCgwLCAwLCBl
eHRlbnRzLndpZHRoLCBleHRlbnRzLmhlaWdodCk7CisgICAgICAgICAgICBtdGxUZXh0dXJlUmVn
aW9uLm9yaWdpbi56ID0gZCArIHN0YXJ0RGVwdGg7CisgICAgICAgICAgICB0ZXh0dXJlLT5yZXBs
YWNlUmVnaW9uKGNvbnRleHRNdGwsIG10bFRleHR1cmVSZWdpb24sIGluZGV4LmdldE5hdGl2ZUxl
dmVsKCksIGxheWVyLCBidWZmZXIuZGF0YSgpLCBieXRlc1BlclJvdywgMCk7CisgICAgICAgIH0K
KyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgbXRsOjpCdWZmZXJSZWYgemVyb0J1ZmZl
cjsKKyAgICAgICAgQU5HTEVfVFJZKG10bDo6QnVmZmVyOjpNYWtlQnVmZmVyKGNvbnRleHRNdGws
IGJ5dGVzUGVySW1hZ2UsIG51bGxwdHIsICZ6ZXJvQnVmZmVyKSk7CisgICAgICAgIG10bDo6Qmxp
dENvbW1hbmRFbmNvZGVyICogYmxpdEVuY29kZXIgPSBjb250ZXh0TXRsLT5nZXRCbGl0Q29tbWFu
ZEVuY29kZXIoKTsKKyAgICAgICAgZm9yIChOU1VJbnRlZ2VyIGQgPSAwOyBkIDwgc3RhdGljX2Nh
c3Q8TlNVSW50ZWdlcj4oZXh0ZW50cy5kZXB0aCk7ICsrZCkKKyAgICAgICAgeworICAgICAgICAg
ICAgYXV0byBibGl0T3JpZ2luID0gTVRMT3JpZ2luTWFrZSgwLDAsZCArIHN0YXJ0RGVwdGgpOwor
ICAgICAgICAgICAgYmxpdEVuY29kZXItPmNvcHlCdWZmZXJUb1RleHR1cmUoemVyb0J1ZmZlciwg
MCwgYnl0ZXNQZXJSb3csIDAsIE1UTFNpemVNYWtlKGV4dGVudHMud2lkdGgsIGV4dGVudHMuaGVp
Z2h0LCAxKSwgdGV4dHVyZSwgbGF5ZXIsIGluZGV4LmdldE5hdGl2ZUxldmVsKCksYmxpdE9yaWdp
biwgMCk7CisgICAgICAgIH0KKyAgICAgIAorICAgICAgICBibGl0RW5jb2Rlci0+ZW5kRW5jb2Rp
bmcoKTsKKyAgICB9CisgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOworICAgIAor
fQorCiBhbmdsZTo6UmVzdWx0IEluaXRpYWxpemVUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6OkNv
bnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVGV4dHVyZVJlZiAmdGV4dHVyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRleHR1cmVPYmpGb3JtYXQsCkBAIC0xMjEsMTIgKzE5
NywxNCBAQCBhbmdsZTo6UmVzdWx0IEluaXRpYWxpemVUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCiAgICAgCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
aW4gbWFueSBwbGFjZXMgdG8gaW5pdGlhbGl6ZSB0aGUgY29udGVudCBvZiBhIHRleHR1cmUuCiAg
ICAgLy8gU28gaXQncyBiZXR0ZXIgd2UgZG8gdGhlIHNhbml0eSBjaGVjayBoZXJlIGluc3RlYWQg
b2YgbGV0IHRoZSBjYWxsZXJzIGRvIGl0IHRoZW1zZWx2ZXM6Ci0gICAgaWYgKCF0ZXh0dXJlT2Jq
Rm9ybWF0LnZhbGlkKCkgfHwgYWN0dWFsQW5nbGVGb3JtYXQuaXNCbG9jayB8fCBhY3R1YWxBbmds
ZUZvcm1hdC5kZXB0aEJpdHMgPiAwIHx8CisgICAgLy8gVE9ETzogKGtwaWRkaW5ndG9uKSB1cGRh
dGUgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyB3aXRoIGFuIHVwc3RyZWFtZWQgdmVyc2lvbiB0
aGF0IGhhbmRsZXMgZGVwdGgvc3RlbmNpbCB0ZXh0dXJlcy4KKyAgICBpZiAoIXRleHR1cmVPYmpG
b3JtYXQudmFsaWQoKSB8fCBhY3R1YWxBbmdsZUZvcm1hdC5kZXB0aEJpdHMgPiAwIHx8CiAgICAg
ICAgIGFjdHVhbEFuZ2xlRm9ybWF0LnN0ZW5jaWxCaXRzID4gMCkKICAgICB7Ci0gICAgICAgIC8v
IElmIGRzdCBmb3JtYXQgaXMgY29tcHJlc3NlZCwgaWdub3JlLgorICAgICAgICAvLyBEZXB0aCBv
ciBzdGVuY2lsIHRleHR1cmVzIG5lZWQgYW4gdXBkYXRlZCBwYXRoLgogICAgICAgICByZXR1cm4g
YW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiAgICAgfQorICAKIAogICAgIGdsOjpFeHRlbnRzIHNp
emUgPSB0ZXh0dXJlLT5zaXplKGluZGV4KTsKIApAQCAtMTUxLDYgKzIyOSwxMSBAQCBhbmdsZTo6
UmVzdWx0IEluaXRpYWxpemVUZXh0dXJlQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRl
eHQsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisgICAgCisgICAg
aWYoYWN0dWFsQW5nbGVGb3JtYXQuaXNCbG9jaykKKyAgICB7CisgICAgICAgIHJldHVybiBJbml0
aWFsaXplQ29tcHJlc3NlZFRleHR1cmVDb250ZW50cyhjb250ZXh0LCB0ZXh0dXJlLCB0ZXh0dXJl
T2JqRm9ybWF0LCBpbmRleCwgbGF5ZXIsIHN0YXJ0RGVwdGgpOworICAgIH0KIAogICAgIGlmICh0
ZXh0dXJlLT5pc0NQVUFjY2Vzc2libGUoKSAmJiBpbmRleC5nZXRUeXBlKCkgIT0gZ2w6OlRleHR1
cmVUeXBlOjpfMkRNdWx0aXNhbXBsZSAmJgogICAgICAgICBpbmRleC5nZXRUeXBlKCkgIT0gZ2w6
OlRleHR1cmVUeXBlOjpfMkRNdWx0aXNhbXBsZUFycmF5ICYmICFmb3JjZUdQVUluaXRpYWxpemF0
aW9uKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGFkZGVmNGRjN2EwNGNmM2YwOGM0Y2Q2ZmMyYzMyYjc5ODE4MzA0ODQuLjQ1
NTM0NjEwNjM1MTQ5ZjAzZGVmNzJhOWYxN2MwY2JkYzAwNzIyZGQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wOS0wOSAgS3lsZSBQaWRkaW5ndG9uICA8a3BpZGRpbmd0b25AYXBwbGUuY29t
PgorCisgICAgICAgIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29t
cHJlc3NlZC10ZXh0dXJlLXMzdGMtc3JnYi5odG1sIGZhaWxzIG9uIEludGVsK0FNRCBNZXRhbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5OTQxCisK
KyAgICAgICAgWmVyby1pbml0aWFsaXplIGNvbXByZXNzZWQgdGV4dHVyZXMgZXhwbGljaXRseSwg
YXMgdGhleSBhcmVuJ3QgaW1wbGljaXRseSBpbml0YWxpemVkIGluIE1ldGFsLgorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMjEtMDktMTAgIEVyaWMgSHV0Y2hpc29uICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIHRlc3QgZXhwZWN0YXRpb25zIGZvciBzdG9yYWdlL2luZGV4ZWRkYi9k
b250LXdlZGdlLXByaXZhdGUuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM4NWRjNGI4YTZi
MTYwMWY5YWJlMWRiMDE4YzhiMjBkNTQyNTRiN2EuLmY2MzUyZjU4YjdhOWY4NGUzNDYzNjlhMjQ1
ZThlMWU2NDZjMjM2NzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzY5Nyw2ICszNjk3LDcgQEAg
d2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXh0dXJlLWNvcm5lci1jYXNl
LXZpZGVvcy5odG1sIFsgUGFzcyBdCiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9nbHNsL21pc2Mv
ZnJhZ2NvbG9yLWZyYWdkYXRhLWludmFyaWFudC5odG1sIFsgUGFzcyBdCiB3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZTIvY29udGV4dC9jb25zdGFudHMtYW5kLXByb3BlcnRpZXMtMi5odG1sIFsgUGFz
cyBdCiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdmVydGV4X2FycmF5cy92ZXJ0ZXgtYXJyYXkt
b2JqZWN0Lmh0bWwgWyBQYXNzIF0KK3dlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
d2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXMzdGMtc3JnYi5odG1sIFsgUGFzcyBdCiB3ZWJnbC8x
LjAueC9jb25mb3JtYW5jZS9leHRlbnNpb25zL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwg
WyBQYXNzIF0KIAogIyBXZWJHTCAxLjAuMyBhbmQgMi4wLjAgdGVzdHMgd2hlcmUgYmVoYXZpb3Ig
aXMgb2Jzb2xldGUgYW5kIFdlYktpdCBjb250YWlucyBpbXBsZW1lbnRhdGlvbgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438277</attachid>
            <date>2021-09-15 12:35:30 -0700</date>
            <delta_ts>2021-09-15 12:36:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229941-20210915123529.patch</filename>
            <type>text/plain</type>
            <size>7982</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uMTQ2MGJhOWYzMTYw
OWRkOGY3NTY3ZDYxYWIwY2Y5MDE4MWE5YzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW06CisgICAgICAgIChyeDo6bXRsOjpHZXRD
b21wcmVzc2VkQnVmZmVyRm9yVGV4dHVyZVdpdGhGb3JtYXQpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMpOgorICAgICAgICAocng6Om10bDo6
SW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyk6CisKIDIwMjEtMDgtMzEgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJnbC8xLjAueC9jb25mb3JtYW5j
ZS9nbHNsL21pc2MvZnJhZ2NvbG9yLWZyYWdkYXRhLWludmFyaWFudC5odG1sIGZhaWxzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvbXRsX3V0aWxzLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL210bF91dGlscy5tbQppbmRleCBiZDEyYzUzZmQ0NmVkZTA3NWE1M2Y2OWU3
NGNkOWEyODc5NGZlZDQ4Li42YzA5ZmY2MDVmZTE0MGFlYTQ5NzI4MDQwNmUxYmZiNzlhNjExY2Rl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvbXRsX3V0aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KQEAgLTEwMyw2ICsxMDMsODIgQEAg
R0xpbnQgR2V0U2xpY2VPckRlcHRoKGNvbnN0IEltYWdlTmF0aXZlSW5kZXggJmluZGV4KQogCiB9
CiAKK2Jvb2wgR2V0Q29tcHJlc3NlZEJ1ZmZlclNpemVBbmRSb3dMZW5ndGhGb3JUZXh0dXJlV2l0
aEZvcm1hdChjb25zdCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGb3JtYXQgJnRleHR1cmVPYmpGb3JtYXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0
aXZlSW5kZXggJmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgKmJ5dGVzUGVyUm93T3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgKmJ5dGVzUGVySW1hZ2VPdXQpCit7CisgICAgZ2w6OkV4
dGVudHMgc2l6ZSA9IHRleHR1cmUtPnNpemUoaW5kZXgpOworICAgIEdMdWludCBidWZmZXJTaXpl
SW5CeXRlczsKKyAgICB1aW50MzJfdCBidWZmZXJSb3dMZW5ndGg7CisgICAgaWYoIXRleHR1cmVP
YmpGb3JtYXQuaW50ZW5kZWRJbnRlcm5hbEZvcm1hdCgpLmNvbXB1dGVDb21wcmVzc2VkSW1hZ2VT
aXplKHNpemUsICZidWZmZXJTaXplSW5CeXRlcykpCisgICAgeworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIGlmKCF0ZXh0dXJlT2JqRm9ybWF0LmludGVuZGVkSW50ZXJuYWxGb3Jt
YXQoKS5jb21wdXRlQnVmZmVyUm93TGVuZ3RoKHNpemUud2lkdGgsICZidWZmZXJSb3dMZW5ndGgp
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAqYnl0ZXNQZXJJbWFn
ZU91dCA9IGJ1ZmZlclNpemVJbkJ5dGVzOworICAgICpieXRlc1BlclJvd091dCA9IGJ1ZmZlclJv
d0xlbmd0aDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCitzdGF0aWMgYW5nbGU6OlJlc3VsdCBJ
bml0aWFsaXplQ29tcHJlc3NlZFRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29u
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXh0
dXJlUmVmICZ0ZXh0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IEZvcm1hdCAmdGV4dHVyZU9iakZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBJbWFnZU5hdGl2ZUluZGV4ICZpbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50IGxheWVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQgc3RhcnREZXB0aCkK
K3sKKyAgICBhc3NlcnQodGV4dHVyZU9iakZvcm1hdC5hY3R1YWxBbmdsZUZvcm1hdCgpLmlzQmxv
Y2spOworICAgIHNpemVfdCBieXRlc1BlclJvdyA9IDA7CisgICAgc2l6ZV90IGJ5dGVzUGVySW1h
Z2UgPSAwOworICAgIAorICAgIGlmKCFHZXRDb21wcmVzc2VkQnVmZmVyU2l6ZUFuZFJvd0xlbmd0
aEZvclRleHR1cmVXaXRoRm9ybWF0KHRleHR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZU9iakZvcm1hdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmYnl0ZXNQZXJSb3csCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ5dGVzUGVySW1h
Z2UpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OlN0b3A7CisgICAgfQor
ICAgIENvbnRleHRNdGwgKmNvbnRleHRNdGwgPSBtdGw6OkdldEltcGwoY29udGV4dCk7CisgICAg
Z2w6OkV4dGVudHMgZXh0ZW50cyA9IHRleHR1cmUtPnNpemUoaW5kZXgpOworICAgIGlmKHRleHR1
cmUtPmlzQ1BVQWNjZXNzaWJsZSgpKQorICAgIHsKKyAgICAgICAgYW5nbGU6Ok1lbW9yeUJ1ZmZl
ciBidWZmZXI7CisgICAgICAgIGlmKCFidWZmZXIucmVzaXplKGJ5dGVzUGVySW1hZ2UpKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6U3RvcDsKKyAgICAgICAg
fQorICAgICAgICBidWZmZXIuZmlsbCgwKTsKKyAgICAgICAgZm9yIChOU1VJbnRlZ2VyIGQgPSAw
OyBkIDwgc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZXh0ZW50cy5kZXB0aCk7ICsrZCkKKyAgICAg
ICAgeworICAgICAgICAgICAgYXV0byBtdGxUZXh0dXJlUmVnaW9uID0gTVRMUmVnaW9uTWFrZTJE
KDAsIDAsIGV4dGVudHMud2lkdGgsIGV4dGVudHMuaGVpZ2h0KTsKKyAgICAgICAgICAgIG10bFRl
eHR1cmVSZWdpb24ub3JpZ2luLnogPSBkICsgc3RhcnREZXB0aDsKKyAgICAgICAgICAgIHRleHR1
cmUtPnJlcGxhY2VSZWdpb24oY29udGV4dE10bCwgbXRsVGV4dHVyZVJlZ2lvbiwgaW5kZXguZ2V0
TmF0aXZlTGV2ZWwoKSwgbGF5ZXIsIGJ1ZmZlci5kYXRhKCksIGJ5dGVzUGVyUm93LCAwKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBtdGw6OkJ1ZmZlclJlZiB6
ZXJvQnVmZmVyOworICAgICAgICBBTkdMRV9UUlkobXRsOjpCdWZmZXI6Ok1ha2VCdWZmZXIoY29u
dGV4dE10bCwgYnl0ZXNQZXJJbWFnZSwgbnVsbHB0ciwgJnplcm9CdWZmZXIpKTsKKyAgICAgICAg
bXRsOjpCbGl0Q29tbWFuZEVuY29kZXIgKiBibGl0RW5jb2RlciA9IGNvbnRleHRNdGwtPmdldEJs
aXRDb21tYW5kRW5jb2RlcigpOworICAgICAgICBmb3IgKE5TVUludGVnZXIgZCA9IDA7IGQgPCBz
dGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihleHRlbnRzLmRlcHRoKTsgKytkKQorICAgICAgICB7Cisg
ICAgICAgICAgICBhdXRvIGJsaXRPcmlnaW4gPSBNVExPcmlnaW5NYWtlKDAsMCxkICsgc3RhcnRE
ZXB0aCk7CisgICAgICAgICAgICBibGl0RW5jb2Rlci0+Y29weUJ1ZmZlclRvVGV4dHVyZSh6ZXJv
QnVmZmVyLCAwLCBieXRlc1BlclJvdywgMCwgTVRMU2l6ZU1ha2UoZXh0ZW50cy53aWR0aCwgZXh0
ZW50cy5oZWlnaHQsIDEpLCB0ZXh0dXJlLCBsYXllciwgaW5kZXguZ2V0TmF0aXZlTGV2ZWwoKSxi
bGl0T3JpZ2luLCAwKTsKKyAgICAgICAgfQorICAgICAgCisgICAgICAgIGJsaXRFbmNvZGVyLT5l
bmRFbmNvZGluZygpOworICAgIH0KKyAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7
CisgICAgCit9CisKIGFuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25z
dCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEZvcm1hdCAmdGV4dHVyZU9iakZvcm1hdCwKQEAgLTEy
MSwxMiArMTk3LDE0IEBAIGFuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhj
b25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBpbiBtYW55IHBsYWNlcyB0byBpbml0aWFsaXplIHRoZSBjb250ZW50IG9mIGEgdGV4
dHVyZS4KICAgICAvLyBTbyBpdCdzIGJldHRlciB3ZSBkbyB0aGUgc2FuaXR5IGNoZWNrIGhlcmUg
aW5zdGVhZCBvZiBsZXQgdGhlIGNhbGxlcnMgZG8gaXQgdGhlbXNlbHZlczoKLSAgICBpZiAoIXRl
eHR1cmVPYmpGb3JtYXQudmFsaWQoKSB8fCBhY3R1YWxBbmdsZUZvcm1hdC5pc0Jsb2NrIHx8IGFj
dHVhbEFuZ2xlRm9ybWF0LmRlcHRoQml0cyA+IDAgfHwKKyAgICAvLyBUT0RPOiAoa3BpZGRpbmd0
b24pIHVwZGF0ZSBJbml0aWFsaXplVGV4dHVyZUNvbnRlbnRzIHdpdGggYW4gdXBzdHJlYW1lZCB2
ZXJzaW9uIHRoYXQgaGFuZGxlcyBkZXB0aC9zdGVuY2lsIHRleHR1cmVzLgorICAgIGlmICghdGV4
dHVyZU9iakZvcm1hdC52YWxpZCgpIHx8IGFjdHVhbEFuZ2xlRm9ybWF0LmRlcHRoQml0cyA+IDAg
fHwKICAgICAgICAgYWN0dWFsQW5nbGVGb3JtYXQuc3RlbmNpbEJpdHMgPiAwKQogICAgIHsKLSAg
ICAgICAgLy8gSWYgZHN0IGZvcm1hdCBpcyBjb21wcmVzc2VkLCBpZ25vcmUuCisgICAgICAgIC8v
IERlcHRoIG9yIHN0ZW5jaWwgdGV4dHVyZXMgbmVlZCBhbiB1cGRhdGVkIHBhdGguCiAgICAgICAg
IHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKICAgICB9CisgIAogCiAgICAgZ2w6OkV4
dGVudHMgc2l6ZSA9IHRleHR1cmUtPnNpemUoaW5kZXgpOwogCkBAIC0xNTEsNiArMjI5LDExIEBA
IGFuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4
dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KKyAg
ICAKKyAgICBpZihhY3R1YWxBbmdsZUZvcm1hdC5pc0Jsb2NrKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIEluaXRpYWxpemVDb21wcmVzc2VkVGV4dHVyZUNvbnRlbnRzKGNvbnRleHQsIHRleHR1cmUs
IHRleHR1cmVPYmpGb3JtYXQsIGluZGV4LCBsYXllciwgc3RhcnREZXB0aCk7CisgICAgfQogCiAg
ICAgaWYgKHRleHR1cmUtPmlzQ1BVQWNjZXNzaWJsZSgpICYmIGluZGV4LmdldFR5cGUoKSAhPSBn
bDo6VGV4dHVyZVR5cGU6Ol8yRE11bHRpc2FtcGxlICYmCiAgICAgICAgIGluZGV4LmdldFR5cGUo
KSAhPSBnbDo6VGV4dHVyZVR5cGU6Ol8yRE11bHRpc2FtcGxlQXJyYXkgJiYgIWZvcmNlR1BVSW5p
dGlhbGl6YXRpb24pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWRkZWY0ZGM3YTA0Y2YzZjA4YzRjZDZmYzJjMzJiNzk4MTgz
MDQ4NC4uNDU1MzQ2MTA2MzUxNDlmMDNkZWY3MmE5ZjE3YzBjYmRjMDA3MjJkZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGluZ3RvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93
ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50ZWwrQU1E
IE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJlcyBleHBs
aWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0YWwuCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAyMS0wOS0xMCAgRXJpYyBIdXRjaGlzb24gIDxlaHV0Y2hpc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIHN0b3JhZ2UvaW5k
ZXhlZGRiL2RvbnQtd2VkZ2UtcHJpdmF0ZS5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzg1
ZGM0YjhhNmIxNjAxZjlhYmUxZGIwMThjOGIyMGQ1NDI1NGI3YS4uMTBmNTE2YWVkZjZmMzkzZWFj
NGI3MzM2ZmNmOGI3NTI2YjI0ZGMyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNjk5LDYgKzM2
OTksOSBAQCB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvY29udGV4dC9jb25zdGFudHMtYW5kLXBy
b3BlcnRpZXMtMi5odG1sIFsgUGFzcyBdCiB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvdmVydGV4
X2FycmF5cy92ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBQYXNzIF0KIHdlYmdsLzEuMC54L2Nv
bmZvcm1hbmNlL2V4dGVuc2lvbnMvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBbIFBhc3Mg
XQogCisjIEV4cGxpY2l0bHkgdHVybiBvbiBjb25mb3JtYW5jZSB0ZXN0IHVudGlsIGFsbCBvZiB3
ZWJnbC8yLjAueSBpcyBlbmFibGVkCit3ZWJnbC8yLjAueS9jb25mb3JtYW5jZS9leHRlbnNpb25z
L3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRtbCBbIFBhc3MgXQorCiAjIFdl
YkdMIDEuMC4zIGFuZCAyLjAuMCB0ZXN0cyB3aGVyZSBiZWhhdmlvciBpcyBvYnNvbGV0ZSBhbmQg
V2ViS2l0IGNvbnRhaW5zIGltcGxlbWVudGF0aW9uCiAjIGFuZCB0ZXN0cyBmb3IgdGhlIG5ldyBi
ZWhhdmlvci4gU2hvdWxkIGJlIHJlbW92ZWQgb25jZSAxLjAuMyBhbmQgMi4wLjAgYXJlIHJldGly
ZWQuCiBmYXN0L2NhbnZhcy93ZWJnbC9pbnZhbGlkLXBhc3NlZC1wYXJhbXMuaHRtbCBbIFNraXAg
XQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438278</attachid>
            <date>2021-09-15 12:36:58 -0700</date>
            <delta_ts>2021-09-16 18:08:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229941-20210915123657.patch</filename>
            <type>text/plain</type>
            <size>8022</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uZGEzMDdhZDE5OWEy
MGQzMGZkMzk1NTJjNWQ5OTc0ZmEzYzRjMjk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbCA8a2JyQGNocm9taXVtLm9y
Zz4uCisKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3V0aWxzLmg6
CisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5tbToKKyAg
ICAgICAgKHJ4OjptdGw6OkdldENvbXByZXNzZWRCdWZmZXJGb3JUZXh0dXJlV2l0aEZvcm1hdCk6
CisgICAgICAgIChyeDo6bXRsOjpJbml0aWFsaXplQ29tcHJlc3NlZFRleHR1cmVDb250ZW50cyk6
CisgICAgICAgIChyeDo6bXRsOjpJbml0aWFsaXplVGV4dHVyZUNvbnRlbnRzKToKKwogMjAyMS0w
OC0zMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIHdl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9mcmFnY29sb3ItZnJhZ2RhdGEtaW52YXJp
YW50Lmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3V0aWxzLm1tCmluZGV4IGJkMTJj
NTNmZDQ2ZWRlMDc1YTUzZjY5ZTc0Y2Q5YTI4Nzk0ZmVkNDguLjZjMDlmZjYwNWZlMTQwYWVhNDk3
MjgwNDA2ZTFiZmI3OWE2MTFjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5tbQpA
QCAtMTAzLDYgKzEwMyw4MiBAQCBHTGludCBHZXRTbGljZU9yRGVwdGgoY29uc3QgSW1hZ2VOYXRp
dmVJbmRleCAmaW5kZXgpCiAKIH0KIAorYm9vbCBHZXRDb21wcmVzc2VkQnVmZmVyU2l6ZUFuZFJv
d0xlbmd0aEZvclRleHR1cmVXaXRoRm9ybWF0KGNvbnN0IFRleHR1cmVSZWYgJnRleHR1cmUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZvcm1hdCAm
dGV4dHVyZU9iakZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgSW1hZ2VOYXRpdmVJbmRleCAmaW5kZXgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqYnl0ZXNQZXJSb3dPdXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqYnl0ZXNQZXJJbWFn
ZU91dCkKK3sKKyAgICBnbDo6RXh0ZW50cyBzaXplID0gdGV4dHVyZS0+c2l6ZShpbmRleCk7Cisg
ICAgR0x1aW50IGJ1ZmZlclNpemVJbkJ5dGVzOworICAgIHVpbnQzMl90IGJ1ZmZlclJvd0xlbmd0
aDsKKyAgICBpZighdGV4dHVyZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFsRm9ybWF0KCkuY29t
cHV0ZUNvbXByZXNzZWRJbWFnZVNpemUoc2l6ZSwgJmJ1ZmZlclNpemVJbkJ5dGVzKSkKKyAgICB7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYoIXRleHR1cmVPYmpGb3JtYXQu
aW50ZW5kZWRJbnRlcm5hbEZvcm1hdCgpLmNvbXB1dGVCdWZmZXJSb3dMZW5ndGgoc2l6ZS53aWR0
aCwgJmJ1ZmZlclJvd0xlbmd0aCkpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgICpieXRlc1BlckltYWdlT3V0ID0gYnVmZmVyU2l6ZUluQnl0ZXM7CisgICAgKmJ5dGVz
UGVyUm93T3V0ID0gYnVmZmVyUm93TGVuZ3RoOworICAgIHJldHVybiB0cnVlOworfQorCisKK3N0
YXRpYyBhbmdsZTo6UmVzdWx0IEluaXRpYWxpemVDb21wcmVzc2VkVGV4dHVyZUNvbnRlbnRzKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFRleHR1cmVSZWYgJnRleHR1cmUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgRm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0aXZlSW5k
ZXggJmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQgbGF5ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgdWludCBzdGFydERlcHRoKQoreworICAgIGFzc2VydCh0ZXh0dXJlT2JqRm9ybWF0LmFjdHVh
bEFuZ2xlRm9ybWF0KCkuaXNCbG9jayk7CisgICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gMDsKKyAg
ICBzaXplX3QgYnl0ZXNQZXJJbWFnZSA9IDA7CisgICAgCisgICAgaWYoIUdldENvbXByZXNzZWRC
dWZmZXJTaXplQW5kUm93TGVuZ3RoRm9yVGV4dHVyZVdpdGhGb3JtYXQodGV4dHVyZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZieXRlc1BlclJvdywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmYnl0ZXNQZXJJbWFnZSkpCisgICAgeworICAgICAgICByZXR1cm4gYW5nbGU6OlJl
c3VsdDo6U3RvcDsKKyAgICB9CisgICAgQ29udGV4dE10bCAqY29udGV4dE10bCA9IG10bDo6R2V0
SW1wbChjb250ZXh0KTsKKyAgICBnbDo6RXh0ZW50cyBleHRlbnRzID0gdGV4dHVyZS0+c2l6ZShp
bmRleCk7CisgICAgaWYodGV4dHVyZS0+aXNDUFVBY2Nlc3NpYmxlKCkpCisgICAgeworICAgICAg
ICBhbmdsZTo6TWVtb3J5QnVmZmVyIGJ1ZmZlcjsKKyAgICAgICAgaWYoIWJ1ZmZlci5yZXNpemUo
Ynl0ZXNQZXJJbWFnZSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhbmdsZTo6UmVz
dWx0OjpTdG9wOworICAgICAgICB9CisgICAgICAgIGJ1ZmZlci5maWxsKDApOworICAgICAgICBm
b3IgKE5TVUludGVnZXIgZCA9IDA7IGQgPCBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihleHRlbnRz
LmRlcHRoKTsgKytkKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvIG10bFRleHR1cmVSZWdp
b24gPSBNVExSZWdpb25NYWtlMkQoMCwgMCwgZXh0ZW50cy53aWR0aCwgZXh0ZW50cy5oZWlnaHQp
OworICAgICAgICAgICAgbXRsVGV4dHVyZVJlZ2lvbi5vcmlnaW4ueiA9IGQgKyBzdGFydERlcHRo
OworICAgICAgICAgICAgdGV4dHVyZS0+cmVwbGFjZVJlZ2lvbihjb250ZXh0TXRsLCBtdGxUZXh0
dXJlUmVnaW9uLCBpbmRleC5nZXROYXRpdmVMZXZlbCgpLCBsYXllciwgYnVmZmVyLmRhdGEoKSwg
Ynl0ZXNQZXJSb3csIDApOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAg
ICAgIG10bDo6QnVmZmVyUmVmIHplcm9CdWZmZXI7CisgICAgICAgIEFOR0xFX1RSWShtdGw6OkJ1
ZmZlcjo6TWFrZUJ1ZmZlcihjb250ZXh0TXRsLCBieXRlc1BlckltYWdlLCBudWxscHRyLCAmemVy
b0J1ZmZlcikpOworICAgICAgICBtdGw6OkJsaXRDb21tYW5kRW5jb2RlciAqIGJsaXRFbmNvZGVy
ID0gY29udGV4dE10bC0+Z2V0QmxpdENvbW1hbmRFbmNvZGVyKCk7CisgICAgICAgIGZvciAoTlNV
SW50ZWdlciBkID0gMDsgZCA8IHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGV4dGVudHMuZGVwdGgp
OyArK2QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gYmxpdE9yaWdpbiA9IE1UTE9yaWdp
bk1ha2UoMCwwLGQgKyBzdGFydERlcHRoKTsKKyAgICAgICAgICAgIGJsaXRFbmNvZGVyLT5jb3B5
QnVmZmVyVG9UZXh0dXJlKHplcm9CdWZmZXIsIDAsIGJ5dGVzUGVyUm93LCAwLCBNVExTaXplTWFr
ZShleHRlbnRzLndpZHRoLCBleHRlbnRzLmhlaWdodCwgMSksIHRleHR1cmUsIGxheWVyLCBpbmRl
eC5nZXROYXRpdmVMZXZlbCgpLGJsaXRPcmlnaW4sIDApOworICAgICAgICB9CisgICAgICAKKyAg
ICAgICAgYmxpdEVuY29kZXItPmVuZEVuY29kaW5nKCk7CisgICAgfQorICAgIHJldHVybiBhbmds
ZTo6UmVzdWx0OjpDb250aW51ZTsKKyAgICAKK30KKwogYW5nbGU6OlJlc3VsdCBJbml0aWFsaXpl
VGV4dHVyZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRleHR1cmVSZWYgJnRleHR1cmUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRm9ybWF0ICZ0ZXh0
dXJlT2JqRm9ybWF0LApAQCAtMTIxLDEyICsxOTcsMTQgQEAgYW5nbGU6OlJlc3VsdCBJbml0aWFs
aXplVGV4dHVyZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIAogICAg
IC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIG1hbnkgcGxhY2VzIHRvIGluaXRpYWxpemUg
dGhlIGNvbnRlbnQgb2YgYSB0ZXh0dXJlLgogICAgIC8vIFNvIGl0J3MgYmV0dGVyIHdlIGRvIHRo
ZSBzYW5pdHkgY2hlY2sgaGVyZSBpbnN0ZWFkIG9mIGxldCB0aGUgY2FsbGVycyBkbyBpdCB0aGVt
c2VsdmVzOgotICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC52YWxpZCgpIHx8IGFjdHVhbEFuZ2xl
Rm9ybWF0LmlzQmxvY2sgfHwgYWN0dWFsQW5nbGVGb3JtYXQuZGVwdGhCaXRzID4gMCB8fAorICAg
IC8vIFRPRE86IChrcGlkZGluZ3RvbikgdXBkYXRlIEluaXRpYWxpemVUZXh0dXJlQ29udGVudHMg
d2l0aCBhbiB1cHN0cmVhbWVkIHZlcnNpb24gdGhhdCBoYW5kbGVzIGRlcHRoL3N0ZW5jaWwgdGV4
dHVyZXMuCisgICAgaWYgKCF0ZXh0dXJlT2JqRm9ybWF0LnZhbGlkKCkgfHwgYWN0dWFsQW5nbGVG
b3JtYXQuZGVwdGhCaXRzID4gMCB8fAogICAgICAgICBhY3R1YWxBbmdsZUZvcm1hdC5zdGVuY2ls
Qml0cyA+IDApCiAgICAgewotICAgICAgICAvLyBJZiBkc3QgZm9ybWF0IGlzIGNvbXByZXNzZWQs
IGlnbm9yZS4KKyAgICAgICAgLy8gRGVwdGggb3Igc3RlbmNpbCB0ZXh0dXJlcyBuZWVkIGFuIHVw
ZGF0ZWQgcGF0aC4KICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogICAg
IH0KKyAgCiAKICAgICBnbDo6RXh0ZW50cyBzaXplID0gdGV4dHVyZS0+c2l6ZShpbmRleCk7CiAK
QEAgLTE1MSw2ICsyMjksMTEgQEAgYW5nbGU6OlJlc3VsdCBJbml0aWFsaXplVGV4dHVyZUNvbnRl
bnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgfQorICAgIAorICAgIGlmKGFjdHVhbEFuZ2xlRm9ybWF0LmlzQmxvY2sp
CisgICAgeworICAgICAgICByZXR1cm4gSW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVu
dHMoY29udGV4dCwgdGV4dHVyZSwgdGV4dHVyZU9iakZvcm1hdCwgaW5kZXgsIGxheWVyLCBzdGFy
dERlcHRoKTsKKyAgICB9CiAKICAgICBpZiAodGV4dHVyZS0+aXNDUFVBY2Nlc3NpYmxlKCkgJiYg
aW5kZXguZ2V0VHlwZSgpICE9IGdsOjpUZXh0dXJlVHlwZTo6XzJETXVsdGlzYW1wbGUgJiYKICAg
ICAgICAgaW5kZXguZ2V0VHlwZSgpICE9IGdsOjpUZXh0dXJlVHlwZTo6XzJETXVsdGlzYW1wbGVB
cnJheSAmJiAhZm9yY2VHUFVJbml0aWFsaXphdGlvbikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZGRlZjRkYzdhMDRjZjNm
MDhjNGNkNmZjMmMzMmI3OTgxODMwNDg0Li43ZTBlNTBmOTQwNjBlMGMwNzUwZjc0MGVjY2VkMDM2
MzVkN2VhZjgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMDkgIEt5bGUgUGlkZGlu
Z3RvbiAgPGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KKworICAgICAgICB3ZWJnbC8yLjAueS9jb25m
b3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRt
bCBmYWlscyBvbiBJbnRlbCtBTUQgTWV0YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyOTk0MQorCisgICAgICAgIFplcm8taW5pdGlhbGl6ZSBjb21w
cmVzc2VkIHRleHR1cmVzIGV4cGxpY2l0bHksIGFzIHRoZXkgYXJlbid0IGltcGxpY2l0bHkgaW5p
dGFsaXplZCBpbiBNZXRhbC4KKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsIDxr
YnJAY2hyb21pdW0ub3JnPi4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEt
MDktMTAgIEVyaWMgSHV0Y2hpc29uICA8ZWh1dGNoaXNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIHRlc3QgZXhwZWN0YXRpb25zIGZvciBzdG9yYWdlL2luZGV4ZWRkYi9kb250LXdlZGdl
LXByaXZhdGUuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM4NWRjNGI4YTZiMTYwMWY5YWJl
MWRiMDE4YzhiMjBkNTQyNTRiN2EuLjEwZjUxNmFlZGY2ZjM5M2VhYzRiNzMzNmZjZjhiNzUyNmIy
NGRjMmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzY5OSw2ICszNjk5LDkgQEAgd2ViZ2wvMi4w
LnkvY29uZm9ybWFuY2UyL2NvbnRleHQvY29uc3RhbnRzLWFuZC1wcm9wZXJ0aWVzLTIuaHRtbCBb
IFBhc3MgXQogd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UyL3ZlcnRleF9hcnJheXMvdmVydGV4LWFy
cmF5LW9iamVjdC5odG1sIFsgUGFzcyBdCiB3ZWJnbC8xLjAueC9jb25mb3JtYW5jZS9leHRlbnNp
b25zL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBQYXNzIF0KIAorIyBFeHBsaWNpdGx5
IHR1cm4gb24gY29uZm9ybWFuY2UgdGVzdCB1bnRpbCBhbGwgb2Ygd2ViZ2wvMi4wLnkgaXMgZW5h
YmxlZAord2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2Vk
LXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgWyBQYXNzIF0KKwogIyBXZWJHTCAxLjAuMyBhbmQgMi4w
LjAgdGVzdHMgd2hlcmUgYmVoYXZpb3IgaXMgb2Jzb2xldGUgYW5kIFdlYktpdCBjb250YWlucyBp
bXBsZW1lbnRhdGlvbgogIyBhbmQgdGVzdHMgZm9yIHRoZSBuZXcgYmVoYXZpb3IuIFNob3VsZCBi
ZSByZW1vdmVkIG9uY2UgMS4wLjMgYW5kIDIuMC4wIGFyZSByZXRpcmVkLgogZmFzdC9jYW52YXMv
d2ViZ2wvaW52YWxpZC1wYXNzZWQtcGFyYW1zLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438423</attachid>
            <date>2021-09-16 18:08:49 -0700</date>
            <delta_ts>2021-09-16 18:59:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229941-20210916180848.patch</filename>
            <type>text/plain</type>
            <size>8345</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggNjlhZGJiNDQyZDIzNWU3ZDQyOTM4YTA0ZWJmOWUzNjc2YzRjZDMwZi4uZGEzMDdhZDE5OWEy
MGQzMGZkMzk1NTJjNWQ5OTc0ZmEzYzRjMjk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA5LTA5ICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgd2ViZ2wvMi4wLnkvY29uZm9ybWFuY2UvZXh0ZW5z
aW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtczN0Yy1zcmdiLmh0bWwgZmFpbHMgb24gSW50
ZWwrQU1EIE1ldGFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjk5NDEKKworICAgICAgICBaZXJvLWluaXRpYWxpemUgY29tcHJlc3NlZCB0ZXh0dXJl
cyBleHBsaWNpdGx5LCBhcyB0aGV5IGFyZW4ndCBpbXBsaWNpdGx5IGluaXRhbGl6ZWQgaW4gTWV0
YWwuCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbCA8a2JyQGNocm9taXVtLm9y
Zz4uCisKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3V0aWxzLmg6
CisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5tbToKKyAg
ICAgICAgKHJ4OjptdGw6OkdldENvbXByZXNzZWRCdWZmZXJGb3JUZXh0dXJlV2l0aEZvcm1hdCk6
CisgICAgICAgIChyeDo6bXRsOjpJbml0aWFsaXplQ29tcHJlc3NlZFRleHR1cmVDb250ZW50cyk6
CisgICAgICAgIChyeDo6bXRsOjpJbml0aWFsaXplVGV4dHVyZUNvbnRlbnRzKToKKwogMjAyMS0w
OC0zMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIHdl
YmdsLzEuMC54L2NvbmZvcm1hbmNlL2dsc2wvbWlzYy9mcmFnY29sb3ItZnJhZ2RhdGEtaW52YXJp
YW50Lmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3V0aWxzLm1tCmluZGV4IGJkMTJj
NTNmZDQ2ZWRlMDc1YTUzZjY5ZTc0Y2Q5YTI4Nzk0ZmVkNDguLjg3YjFjZTIzZDM2MmY1ZTdkZTIy
NWNjYTdhZDA5YmZkZTE0MDRjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91dGlscy5tbQpA
QCAtMTAzLDYgKzEwMyw4MiBAQCBHTGludCBHZXRTbGljZU9yRGVwdGgoY29uc3QgSW1hZ2VOYXRp
dmVJbmRleCAmaW5kZXgpCiAKIH0KIAorYm9vbCBHZXRDb21wcmVzc2VkQnVmZmVyU2l6ZUFuZFJv
d0xlbmd0aEZvclRleHR1cmVXaXRoRm9ybWF0KGNvbnN0IFRleHR1cmVSZWYgJnRleHR1cmUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgRm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlTmF0aXZl
SW5kZXggJmluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCAqYnl0ZXNQZXJSb3dPdXQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpi
eXRlc1BlckltYWdlT3V0KQoreworICAgIGdsOjpFeHRlbnRzIHNpemUgPSB0ZXh0dXJlLT5zaXpl
KGluZGV4KTsKKyAgICBHTHVpbnQgYnVmZmVyU2l6ZUluQnl0ZXM7CisgICAgdWludDMyX3QgYnVm
ZmVyUm93TGVuZ3RoOworICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFs
Rm9ybWF0KCkuY29tcHV0ZUNvbXByZXNzZWRJbWFnZVNpemUoc2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZidWZmZXJTaXplSW5CeXRlcykpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFsRm9ybWF0
KCkuY29tcHV0ZUJ1ZmZlclJvd0xlbmd0aChzaXplLndpZHRoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
YnVmZmVyUm93TGVuZ3RoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
ICAgKmJ5dGVzUGVySW1hZ2VPdXQgPSBidWZmZXJTaXplSW5CeXRlczsKKyAgICAqYnl0ZXNQZXJS
b3dPdXQgICA9IGJ1ZmZlclJvd0xlbmd0aDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGlj
IGFuZ2xlOjpSZXN1bHQgSW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXh0dXJlUmVmICZ0ZXh0dXJlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Rm9ybWF0ICZ0ZXh0dXJlT2JqRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW1hZ2VOYXRpdmVJbmRleCAmaW5kZXgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCB1aW50IGxheWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludCBzdGFydERlcHRoKQoreworICAgIGFzc2Vy
dCh0ZXh0dXJlT2JqRm9ybWF0LmFjdHVhbEFuZ2xlRm9ybWF0KCkuaXNCbG9jayk7CisgICAgc2l6
ZV90IGJ5dGVzUGVyUm93ICAgPSAwOworICAgIHNpemVfdCBieXRlc1BlckltYWdlID0gMDsKKwor
ICAgIGlmICghR2V0Q29tcHJlc3NlZEJ1ZmZlclNpemVBbmRSb3dMZW5ndGhGb3JUZXh0dXJlV2l0
aEZvcm1hdCh0ZXh0dXJlLCB0ZXh0dXJlT2JqRm9ybWF0LCBpbmRleCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ5dGVz
UGVyUm93LCAmYnl0ZXNQZXJJbWFnZSkpCisgICAgeworICAgICAgICByZXR1cm4gYW5nbGU6OlJl
c3VsdDo6U3RvcDsKKyAgICB9CisgICAgQ29udGV4dE10bCAqY29udGV4dE10bCA9IG10bDo6R2V0
SW1wbChjb250ZXh0KTsKKyAgICBnbDo6RXh0ZW50cyBleHRlbnRzICAgID0gdGV4dHVyZS0+c2l6
ZShpbmRleCk7CisgICAgaWYgKHRleHR1cmUtPmlzQ1BVQWNjZXNzaWJsZSgpKQorICAgIHsKKyAg
ICAgICAgYW5nbGU6Ok1lbW9yeUJ1ZmZlciBidWZmZXI7CisgICAgICAgIGlmICghYnVmZmVyLnJl
c2l6ZShieXRlc1BlckltYWdlKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFuZ2xl
OjpSZXN1bHQ6OlN0b3A7CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyLmZpbGwoMCk7CisgICAg
ICAgIGZvciAoTlNVSW50ZWdlciBkID0gMDsgZCA8IHN0YXRpY19jYXN0PE5TVUludGVnZXI+KGV4
dGVudHMuZGVwdGgpOyArK2QpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbXRsVGV4dHVy
ZVJlZ2lvbiAgICAgPSBNVExSZWdpb25NYWtlMkQoMCwgMCwgZXh0ZW50cy53aWR0aCwgZXh0ZW50
cy5oZWlnaHQpOworICAgICAgICAgICAgbXRsVGV4dHVyZVJlZ2lvbi5vcmlnaW4ueiA9IGQgKyBz
dGFydERlcHRoOworICAgICAgICAgICAgdGV4dHVyZS0+cmVwbGFjZVJlZ2lvbihjb250ZXh0TXRs
LCBtdGxUZXh0dXJlUmVnaW9uLCBpbmRleC5nZXROYXRpdmVMZXZlbCgpLCBsYXllciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmRhdGEoKSwgYnl0ZXNQZXJSb3cs
IDApOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIG10bDo6QnVm
ZmVyUmVmIHplcm9CdWZmZXI7CisgICAgICAgIEFOR0xFX1RSWShtdGw6OkJ1ZmZlcjo6TWFrZUJ1
ZmZlcihjb250ZXh0TXRsLCBieXRlc1BlckltYWdlLCBudWxscHRyLCAmemVyb0J1ZmZlcikpOwor
ICAgICAgICBtdGw6OkJsaXRDb21tYW5kRW5jb2RlciAqYmxpdEVuY29kZXIgPSBjb250ZXh0TXRs
LT5nZXRCbGl0Q29tbWFuZEVuY29kZXIoKTsKKyAgICAgICAgZm9yIChOU1VJbnRlZ2VyIGQgPSAw
OyBkIDwgc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZXh0ZW50cy5kZXB0aCk7ICsrZCkKKyAgICAg
ICAgeworICAgICAgICAgICAgYXV0byBibGl0T3JpZ2luID0gTVRMT3JpZ2luTWFrZSgwLCAwLCBk
ICsgc3RhcnREZXB0aCk7CisgICAgICAgICAgICBibGl0RW5jb2Rlci0+Y29weUJ1ZmZlclRvVGV4
dHVyZSh6ZXJvQnVmZmVyLCAwLCBieXRlc1BlclJvdywgMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1UTFNpemVNYWtlKGV4dGVudHMud2lkdGgsIGV4dGVu
dHMuaGVpZ2h0LCAxKSwgdGV4dHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxheWVyLCBpbmRleC5nZXROYXRpdmVMZXZlbCgpLCBibGl0T3JpZ2luLCAw
KTsKKyAgICAgICAgfQorCisgICAgICAgIGJsaXRFbmNvZGVyLT5lbmRFbmNvZGluZygpOworICAg
IH0KKyAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7Cit9CisKIGFuZ2xlOjpSZXN1
bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXh0dXJlUmVm
ICZ0ZXh0dXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEZvcm1hdCAmdGV4dHVyZU9iakZvcm1hdCwKQEAgLTExOCwxMyArMTk0LDE1IEBAIGFuZ2xlOjpS
ZXN1bHQgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4
dCwKICNpZiBUQVJHRVRfT1NfU0lNVUxBVE9SCiAgICAgZm9yY2VHUFVJbml0aWFsaXphdGlvbiA9
IHRydWU7CiAjZW5kaWYgLy8gVEFSR0VUX09TX1NJTVVMQVRPUgotICAgIAorCiAgICAgLy8gVGhp
cyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gbWFueSBwbGFjZXMgdG8gaW5pdGlhbGl6ZSB0aGUgY29u
dGVudCBvZiBhIHRleHR1cmUuCiAgICAgLy8gU28gaXQncyBiZXR0ZXIgd2UgZG8gdGhlIHNhbml0
eSBjaGVjayBoZXJlIGluc3RlYWQgb2YgbGV0IHRoZSBjYWxsZXJzIGRvIGl0IHRoZW1zZWx2ZXM6
Ci0gICAgaWYgKCF0ZXh0dXJlT2JqRm9ybWF0LnZhbGlkKCkgfHwgYWN0dWFsQW5nbGVGb3JtYXQu
aXNCbG9jayB8fCBhY3R1YWxBbmdsZUZvcm1hdC5kZXB0aEJpdHMgPiAwIHx8CisgICAgLy8gVE9E
TzogKGtwaWRkaW5ndG9uKSB1cGRhdGUgSW5pdGlhbGl6ZVRleHR1cmVDb250ZW50cyB3aXRoIGFu
IHVwc3RyZWFtZWQgdmVyc2lvbiB0aGF0IGhhbmRsZXMKKyAgICAvLyBkZXB0aC9zdGVuY2lsIHRl
eHR1cmVzLgorICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC52YWxpZCgpIHx8IGFjdHVhbEFuZ2xl
Rm9ybWF0LmRlcHRoQml0cyA+IDAgfHwKICAgICAgICAgYWN0dWFsQW5nbGVGb3JtYXQuc3RlbmNp
bEJpdHMgPiAwKQogICAgIHsKLSAgICAgICAgLy8gSWYgZHN0IGZvcm1hdCBpcyBjb21wcmVzc2Vk
LCBpZ25vcmUuCisgICAgICAgIC8vIERlcHRoIG9yIHN0ZW5jaWwgdGV4dHVyZXMgbmVlZCBhbiB1
cGRhdGVkIHBhdGguCiAgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKICAg
ICB9CiAKQEAgLTE1Miw2ICsyMzAsMTIgQEAgYW5nbGU6OlJlc3VsdCBJbml0aWFsaXplVGV4dHVy
ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICB9CiAgICAgfQog
CisgICAgaWYgKGFjdHVhbEFuZ2xlRm9ybWF0LmlzQmxvY2spCisgICAgeworICAgICAgICByZXR1
cm4gSW5pdGlhbGl6ZUNvbXByZXNzZWRUZXh0dXJlQ29udGVudHMoY29udGV4dCwgdGV4dHVyZSwg
dGV4dHVyZU9iakZvcm1hdCwgaW5kZXgsIGxheWVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnREZXB0aCk7CisgICAgfQorCiAgICAgaWYg
KHRleHR1cmUtPmlzQ1BVQWNjZXNzaWJsZSgpICYmIGluZGV4LmdldFR5cGUoKSAhPSBnbDo6VGV4
dHVyZVR5cGU6Ol8yRE11bHRpc2FtcGxlICYmCiAgICAgICAgIGluZGV4LmdldFR5cGUoKSAhPSBn
bDo6VGV4dHVyZVR5cGU6Ol8yRE11bHRpc2FtcGxlQXJyYXkgJiYgIWZvcmNlR1BVSW5pdGlhbGl6
YXRpb24pCiAgICAgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFkZGVmNGRjN2EwNGNmM2YwOGM0Y2Q2ZmMyYzMyYjc5ODE4
MzA0ODQuLjdlMGU1MGY5NDA2MGUwYzA3NTBmNzQwZWNjZWQwMzYzNWQ3ZWFmODEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMS0wOS0wOSAgS3lsZSBQaWRkaW5ndG9uICA8a3BpZGRpbmd0b25A
YXBwbGUuY29tPgorCisgICAgICAgIHdlYmdsLzIuMC55L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
d2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLXMzdGMtc3JnYi5odG1sIGZhaWxzIG9uIEludGVsK0FN
RCBNZXRhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI5OTQxCisKKyAgICAgICAgWmVyby1pbml0aWFsaXplIGNvbXByZXNzZWQgdGV4dHVyZXMgZXhw
bGljaXRseSwgYXMgdGhleSBhcmVuJ3QgaW1wbGljaXRseSBpbml0YWxpemVkIGluIE1ldGFsLgor
ICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwgPGtickBjaHJvbWl1bS5vcmc+Lgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wOS0xMCAgRXJpYyBIdXRjaGlz
b24gIDxlaHV0Y2hpc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGVzdCBleHBlY3Rh
dGlvbnMgZm9yIHN0b3JhZ2UvaW5kZXhlZGRiL2RvbnQtd2VkZ2UtcHJpdmF0ZS5odG1sLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMzg1ZGM0YjhhNmIxNjAxZjlhYmUxZGIwMThjOGIyMGQ1NDI1NGI3
YS4uMTBmNTE2YWVkZjZmMzkzZWFjNGI3MzM2ZmNmOGI3NTI2YjI0ZGMyYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0zNjk5LDYgKzM2OTksOSBAQCB3ZWJnbC8yLjAueS9jb25mb3JtYW5jZTIvY29u
dGV4dC9jb25zdGFudHMtYW5kLXByb3BlcnRpZXMtMi5odG1sIFsgUGFzcyBdCiB3ZWJnbC8yLjAu
eS9jb25mb3JtYW5jZTIvdmVydGV4X2FycmF5cy92ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBQ
YXNzIF0KIHdlYmdsLzEuMC54L2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvb2VzLXZlcnRleC1hcnJh
eS1vYmplY3QuaHRtbCBbIFBhc3MgXQogCisjIEV4cGxpY2l0bHkgdHVybiBvbiBjb25mb3JtYW5j
ZSB0ZXN0IHVudGlsIGFsbCBvZiB3ZWJnbC8yLjAueSBpcyBlbmFibGVkCit3ZWJnbC8yLjAueS9j
b25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2Iu
aHRtbCBbIFBhc3MgXQorCiAjIFdlYkdMIDEuMC4zIGFuZCAyLjAuMCB0ZXN0cyB3aGVyZSBiZWhh
dmlvciBpcyBvYnNvbGV0ZSBhbmQgV2ViS2l0IGNvbnRhaW5zIGltcGxlbWVudGF0aW9uCiAjIGFu
ZCB0ZXN0cyBmb3IgdGhlIG5ldyBiZWhhdmlvci4gU2hvdWxkIGJlIHJlbW92ZWQgb25jZSAxLjAu
MyBhbmQgMi4wLjAgYXJlIHJldGlyZWQuCiBmYXN0L2NhbnZhcy93ZWJnbC9pbnZhbGlkLXBhc3Nl
ZC1wYXJhbXMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>